JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shell.about.title", {}, "Archive Lore & Information")>></h2> <div class="section-divider"><span><<print CC.t("shell.about.dossier", {}, "DOSSIER: CORPSE CITY")>></span></div> <p><<print CC.t("shell.about.lead", {}, "<strong>Corpse City</strong> is a post-apocalyptic text-based survival RPG set in a quarantined, ruined megalopolis in 2037. The old world collapsed in 2025 following the release of the synthetic bioweapon strain <em>\"Adam-0\"</em>, which selectively eliminated over 97% of the planet's male population. Surgical strikes of cobalt and chemical warheads reduced the city to radioactive ruins, crawling with plague mutants and feral beasts.")>></p> <div class="section-divider"><span><<print CC.t("shell.about.order", {}, "THE NEW ORDER OF THE WASTELAND")>></span></div> <p><<print CC.t("shell.about.order_text", {}, "In the ashes of civilization, a harsh matriarchal society emerged. The scarce fertile men became the most coveted strategic asset and primary target in a brutal war between factions: the militarized Senate of <em>\"Aegis\"</em>, the ruthless slavers of the <em>\"Red Band\"</em> clan, male tyrannies, and feral neolithic tribes.")>></p> <div class="section-divider"><span><<print CC.t("shell.about.hero", {}, "THE PROTAGONIST & THE SHELTER")>></span></div> <p><<print CC.t("shell.about.hero_text", {}, "You are <strong>Nomad</strong>, a hardened fighter and fugitive who managed to seize an autonomous, sealed underground shelter. To survive, you must scavenge food and weapons on deadly raids, defend your home against nocturnal sieges, trade in the slave market, and navigate a complex hierarchy of relationships with the women of the Wasteland: ranging from iron-fisted subjugation and chains to profound trust, devotion, and partnership.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MainMenu"><<print CC.t("shell.about.back", {}, "← Return to Main Terminal")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shell.changelog.title", {}, "Modification Log (Changelog)")>></h2> <div class="section-divider"><span><<print CC.t("shell.changelog.version", {}, "VERSION 0.3.1: REBUILD")>></span></div> <div class="section-divider"><span><<print CC.t("shell.changelog.added_t", {}, "ADDED")>></span></div> <ul> <li><<print CC.t("shell.changelog.added_1", {}, "Workshop — a place to craft weapons and armor.")>></li> <li><<print CC.t("shell.changelog.added_2", {}, "Many new locations and sub-locations, lots of background images.")>></li> <li><<print CC.t("shell.changelog.added_3", {}, "You can now give weapons and armor to shelter girls.")>></li> <li><<print CC.t("shell.changelog.added_4", {}, "Skill and attribute progress is now visible for shelter girls, just like for the player.")>></li> <li><<print CC.t("shell.changelog.added_5", {}, "New jobs: Lumberjack, Guard, Worker.")>></li> <li><<print CC.t("shell.changelog.added_6", {}, "Many new NPCs, including a new shelter girl with unique sex scenes.")>></li> <li><<print CC.t("shell.changelog.added_7", {}, "New weapon and armor types.")>></li> <li><<print CC.t("shell.changelog.added_8", {}, "New huntable beasts.")>></li> <li><<print CC.t("shell.changelog.added_9", {}, "New mutant enemies.")>></li> <li><<print CC.t("shell.changelog.added_10", {}, "New goods and shop sections.")>></li> <li><<print CC.t("shell.changelog.added_11", {}, "Day cycle system: a day now has 4 cycles, the character needs rest and sleep.")>></li> <li><<print CC.t("shell.changelog.added_12", {}, "Combat Squad — take loyal girls with you into battle (up to 4 girls + the player).")>></li> <li><<print CC.t("shell.changelog.added_13", {}, "New events, most of them tied to the shelter.")>></li> <li><<print CC.t("shell.changelog.added_14", {}, "Wounded condition: the player or shelter girls fall into it when heavily wounded or during the Disease event.")>></li> <li><<print CC.t("shell.changelog.added_15", {}, "Caravan system: caravans take supplies in Aegis and travel to New Hope in real day cycles.")>></li> <li><<print CC.t("shell.changelog.added_16", {}, "Reputation system: lowers buy prices and raises sell prices on Aegis markets.")>></li> <li><<print CC.t("shell.changelog.added_17", {}, "Quick assignment panel for shelter girls.")>></li> </ul> <div class="section-divider"><span><<print CC.t("shell.changelog.changed_t", {}, "CHANGES")>></span></div> <ul> <li><<print CC.t("shell.changelog.changed_1", {}, "Combat and gear fully reworked.")>></li> <li><<print CC.t("shell.changelog.changed_2", {}, "Entire game economy reworked and rebalanced.")>></li> <li><<print CC.t("shell.changelog.changed_3", {}, "Dynamic market prices.")>></li> <li><<print CC.t("shell.changelog.changed_4", {}, "Relationship and punishment systems changed and rebalanced.")>></li> <li><<print CC.t("shell.changelog.changed_5", {}, "UI / UX pass — nearly every location and window got at least some change.")>></li> <li><<print CC.t("shell.changelog.changed_6", {}, "Some locations got visual or logic updates.")>></li> <li><<print CC.t("shell.changelog.changed_7", {}, "Contracts reworked in code and visually.")>></li> <li><<print CC.t("shell.changelog.changed_8", {}, "Shelter girl and NPC cards and interactions reworked.")>></li> <li><<print CC.t("shell.changelog.changed_9", {}, "Inventory reworked.")>></li> <li><<print CC.t("shell.changelog.changed_10", {}, "Some quests changed (mostly minor).")>></li> <li><<print CC.t("shell.changelog.changed_11", {}, "The old raid event is now a full shelter raid mechanic.")>></li> <li><<print CC.t("shell.changelog.changed_12", {}, "Armor and damage reworked.")>></li> <li><<print CC.t("shell.changelog.changed_13", {}, "Some dialogs removed, reworked or added.")>></li> <li><<print CC.t("shell.changelog.changed_14", {}, "Hunting reworked and all weapons rebalanced.")>></li> <li><<print CC.t("shell.changelog.changed_15", {}, "Hit chances for different weapons changed and rebalanced.")>></li> <li><<print CC.t("shell.changelog.changed_16", {}, "Patreon version added, with cheats for paid subscribers.")>></li> </ul> <p><em><<print CC.t("shell.changelog.note", {}, "There are so many changes overall that I could easily have forgotten something... =)")>></em></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MainMenu"><<print CC.t("shell.changelog.back", {}, "← Return to Main Terminal")>></a> </div> </div>
<<run CC.newGameReset()>> <div class="terminal-card character-create-card cc-char-terminal"> <div class="cc-frame-corner cc-corner-tl"></div> <div class="cc-frame-corner cc-corner-tr"></div> <div class="cc-frame-corner cc-corner-bl"></div> <div class="cc-frame-corner cc-corner-br"></div> <div class="cc-char-header"> <div class="cc-char-header-left"> <span class="cc-status-dot-pulse"></span> <span class="cc-char-proto-tag"><<print CC.t("shell.create.proto", {}, "PROTOCOL: OPERATOR REGISTRATION")>></span> <span class="cc-char-sector-badge"><<print CC.t("shell.create.sector", {}, "SECTOR // SHELTER A-101")>></span> </div> <div class="cc-char-header-right"> <span class="cc-char-code-stamp"><<print CC.t("shell.create.stamp", {}, "SUBJ-001 // ADAM-IMMUNE")>></span> </div> </div> <div class="cc-char-title-wrap"> <h2 class="cc-char-title"><<print CC.icon("character")>> <<print CC.t("shell.create.title", {}, "SHELTER RESIDENT IDENTIFIER")>></h2> <div class="cc-char-subtitle"><<print CC.t("shell.create.subtitle", {}, "AUTONOMOUS BASE LOG SYSTEM // SOLE SURVIVOR DATA ENTRY")>></div> </div> <div class="cc-dossier-lore-box"> <div class="cc-lore-scanline"></div> <div class="cc-lore-meta-chips"> <span class="cc-lore-chip cc-chip-date"><<print CC.icon("info")>> <<print CC.t("shell.create.year", {}, "YEAR 2038")>></span> <span class="cc-lore-chip cc-chip-threat"><<print CC.icon("warning")>> <<print CC.t("shell.create.pathogen", {}, "PATHOGEN \"ADAM-0\"")>></span> <span class="cc-lore-chip cc-chip-status"><<print CC.icon("shield")>> <<print CC.t("shell.create.immunity", {}, "PARTIAL IMMUNITY")>></span> </div> <div class="cc-lore-text"> <<print CC.t("shell.create.lore", {}, "<strong>12 years</strong> have passed since the strain <span class=\"cc-highlight-threat\">\"Adam-0\"</span> wiped out the male sex and decimated the old world. You are one of the few surviving men with partial immunity who endured bio-breeding captivity, wiped out your security detail, and managed to secure this <strong>underground shelter</strong>.")>> </div> </div> <div class="cc-char-field-section"> <div class="cc-field-label-bar"> <span class="cc-field-label"><<print CC.icon("terminal")>> <<print CC.t("shell.create.callsign", {}, "PLAYER CALLSIGN:")>></span> </div> <div class="tactical-input-wrapper"> <span class="tactical-input-prefix">ID_SYS ></span> <input type="text" id="playerName" value="Nomad" class="tactical-input cc-char-name-input" maxlength="24" autocomplete="off" spellcheck="false" placeholder="Nomad"> <span class="tactical-input-cursor">_</span> </div> </div> <div class="char-age-section"> <div class="cc-field-label-bar"> <span class="cc-field-label"><<print CC.icon("users")>> <<print CC.t("shell.create.age", {}, "AGE & APPEARANCE:")>></span> </div> <div class="char-age-grid"> <button type="button" class="char-age-card is-selected" id="ageBtn_young" data-cc="ui.selectAge" data-cc-args='["young", "assets/character/av0.png"]'> <div class="char-age-card-topbar"> <span class="char-dossier-num"><<print CC.t("shell.create.p1", {}, "#PROFILE 01")>></span> <span class="char-age-badge"><<print CC.t("shell.create.seld", {}, "[ SELECTED ]")>></span> </div> <div class="char-avatar-box"> <div class="char-avatar-corner tl"></div> <div class="char-avatar-corner tr"></div> <div class="char-avatar-corner bl"></div> <div class="char-avatar-corner br"></div> <img src="assets/character/av0.png" class="char-avatar-preview" alt="Young" onerror="this.onerror=null;this.src='assets/character/av0.png'"> <div class="char-avatar-scanline"></div> </div> <div class="char-age-info"> <span class="char-age-title"><<print CC.t("shell.create.young", {}, "YOUNG")>></span> </div> <div class="char-card-select-footer"> <span class="char-select-indicator"><<print CC.t("shell.create.active", {}, "ACTIVE PROFILE")>></span> </div> </button> <button type="button" class="char-age-card" id="ageBtn_adult" data-cc="ui.selectAge" data-cc-args='["adult", "assets/character/av1.png"]'> <div class="char-age-card-topbar"> <span class="char-dossier-num"><<print CC.t("shell.create.p2", {}, "#PROFILE 02")>></span> <span class="char-age-badge"><<print CC.t("shell.create.sel", {}, "[ SELECT ]")>></span> </div> <div class="char-avatar-box"> <div class="char-avatar-corner tl"></div> <div class="char-avatar-corner tr"></div> <div class="char-avatar-corner bl"></div> <div class="char-avatar-corner br"></div> <img src="assets/character/av1.png" class="char-avatar-preview" alt="Adult" onerror="this.onerror=null;this.src='assets/character/av1.png'"> <div class="char-avatar-scanline"></div> </div> <div class="char-age-info"> <span class="char-age-title"><<print CC.t("shell.create.adult", {}, "ADULT")>></span> </div> <div class="char-card-select-footer"> <span class="char-select-indicator"><<print CC.t("shell.create.select", {}, "SELECT PROFILE")>></span> </div> </button> <button type="button" class="char-age-card" id="ageBtn_old" data-cc="ui.selectAge" data-cc-args='["old", "assets/character/av3.png"]'> <div class="char-age-card-topbar"> <span class="char-dossier-num"><<print CC.t("shell.create.p3", {}, "#PROFILE 03")>></span> <span class="char-age-badge"><<print CC.t("shell.create.sel", {}, "[ SELECT ]")>></span> </div> <div class="char-avatar-box"> <div class="char-avatar-corner tl"></div> <div class="char-avatar-corner tr"></div> <div class="char-avatar-corner bl"></div> <div class="char-avatar-corner br"></div> <img src="assets/character/av3.png" class="char-avatar-preview" alt="Old" onerror="this.onerror=null;this.src='assets/character/av1.png'"> <div class="char-avatar-scanline"></div> </div> <div class="char-age-info"> <span class="char-age-title"><<print CC.t("shell.create.old", {}, "OLD")>></span> </div> <div class="char-card-select-footer"> <span class="char-select-indicator"><<print CC.t("shell.create.select", {}, "SELECT PROFILE")>></span> </div> </button> </div> <input type="hidden" id="playerAge" value="young"> <input type="hidden" id="playerAvatar" value="assets/character/av0.png"> </div> <div class="cc-char-footer-actions"> <div class="choice-container"> <<set _regCap to CC.t("shell.create.register", {}, "REGISTER CALLSIGN & BEGIN")>> <<button _regCap>> <<set _nameEl = document.getElementById("playerName")>> <<set _enteredName = _nameEl ? _nameEl.value.trim() : "">> <<set $player.name = (_enteredName !== "" ? _enteredName : "Nomad")>> <<set _ageEl = document.getElementById("playerAge")>> <<set _avEl = document.getElementById("playerAvatar")>> <<set $player.age = _ageEl ? _ageEl.value : "young">> <<set $player.avatar = _avEl ? _avEl.value : "assets/character/av0.png">> <<set $player.game_status = 1>> <<set $player.Restraints = 5>> <<goto "Intro">> <</button>> </div> <div class="cc-char-back-row"> <a class="button hud-btn back-btn cc-char-back-btn" data-passage="MainMenu"><<print CC.icon("prev")>> <<print CC.t("shell.create.cancel", {}, "CANCEL & RETURN TO MENU")>></a> </div> </div> </div>
<div class="main-menu-container"> <div class="terminal-card main-menu-box"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="menu-header"> <div class="game-pretitle"><<print CC.t("shell.menu.pretitle", {}, "EMERGENCY ACCESS PROTOCOL // 2037")>></div> <h1 class="game-logo"><<print CC.t("shell.menu.logo", {}, "CORPSE CITY")>></h1> <div class="logo-subtitle"><<print CC.t("shell.menu.subtitle", {}, "Age of the Great Extinction")>></div> <<print CC.cheatUI.versionBadgeHtml()>> </div> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("shell.menu.warn", {}, "WARNING: STRICT 18+ ACCESS")>></span> <p><<print CC.t("shell.menu.warn_text", {}, "This terminal contains scenes of violence, post-nuclear survival, slavery, and explicit adult content.")>></p> </div> <div class="menu-actions"> <<if $player.game_status == 1 && $player.health > 0 && $lastPassage && !["Combat_Defeat", "Starve_Death"].includes($lastPassage)>> <a class="button hud-btn main-btn" data-cc="nav.continue"><<print CC.icon("play")>> <<print CC.t("shell.menu.cont", {}, "Continue Game")>></a> <</if>> <a class="button hud-btn" data-passage="Play"><<print CC.t("shell.menu.begin", {}, "Begin Survival")>></a> <a class="button hud-btn" data-passage="Settings"><<print CC.icon("gear")>> <<print CC.t("shell.menu.settings", {}, "System Settings")>></a> <a class="button hud-btn" data-passage="About"><<print CC.icon("info")>> <<print CC.t("shell.menu.about", {}, "Archive Data (About)")>></a> <a class="button hud-btn" href="https://www.patreon.com/cw/SilkSpice" target="_blank" rel="noopener noreferrer"><<print CC.icon("heart")>> <<print CC.t("shell.menu.patreon", {}, "Support Author")>></a> </div> <div class="terminal-footer"> <span><<print CC.t("shell.menu.sector", {}, "SECTOR 0.3.1 [REBUILD]")>></span> <span><<print CC.t("shell.menu.dev", {}, "DEVELOPER: Silk Spice")>></span> <a class="changelog-link" data-passage="Changelog"><<print CC.t("shell.menu.changelog", {}, "[Changelog]")>></a> </div> </div> <div class="disclaimer-floating-wrap"> <button type="button" class="floating-warning-btn" data-cc="ui.openDisclaimer"> <span class="warning-btn-pulse"></span> <span class="warning-btn-icon"><<print CC.icon("warning")>></span> <span class="warning-btn-text"><<print CC.t("shell.menu.disclaimer_title", {}, "Silk Spice's Warning")>></span> </button> </div> <div id="disclaimer-modal" class="disclaimer-modal-overlay"> <div class="disclaimer-backdrop" data-cc="ui.closeDisclaimer"></div> <div class="terminal-card disclaimer-modal-window"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="disclaimer-header"> <span class="disclaimer-icon"><<print CC.icon("warning")>></span> <h2 class="disclaimer-title"><<print CC.t("shell.menu.disclaimer_title", {}, "Silk Spice's Warning")>></h2> <button type="button" class="disclaimer-modal-close" data-cc="ui.closeDisclaimer" title="Close">✕</button> </div> <div class="disclaimer-content"> <div class="disclaimer-lead"><<print CC.t("shell.menu.disclaimer_greeting", {}, "Greetings, my dear player! I am Silk Spice, and first and foremost, I want to thank you for playing my game — you are awesome! =) Now to the rough parts:")>></div> <div class="disclaimer-point"> <div class="point-badge">1</div> <div class="point-text"> <strong class="point-lead"><<print CC.t("shell.menu.disclaimer_p1_title", {}, "1) Early Access:")>></strong> <<print CC.t("shell.menu.disclaimer_p1_body", {}, "The game is currently in Early Access, and I want to be completely honest and upfront about it. You will likely encounter bugs, rough edges, and things I may have missed, overlooked, or haven't fixed yet. I dedicate all my free time to development, but I also have a real job which leaves limited time for proper QA testing and bug hunting. Please bear with me.")>> </div> </div> <div class="disclaimer-point point-urgent"> <div class="point-badge point-badge-urgent">2</div> <div class="point-text"> <strong class="point-lead"><<print CC.t("shell.menu.disclaimer_p2_title", {}, "2) Incompatible Saves:")>></strong> <<print CC.t("shell.menu.disclaimer_p2_body", {}, "Older saves are NOT supported or will run with bugs and errors! This is due to massive amounts of new code, mechanics, and structural rewrites. This is not a whim: I have to choose between minimal content with stable saves, or lots of new content with broken saves. This situation will change once all planned core mechanics are finished. Thank you for your understanding.")>> </div> </div> <div class="disclaimer-point"> <div class="point-badge">3</div> <div class="point-text"> <strong class="point-lead"><<print CC.t("shell.menu.disclaimer_p3_title", {}, "3) Language & Translation:")>></strong> <<print CC.t("shell.menu.disclaimer_p3_body", {}, "In-game text may contain logic or semantic flaws due to my English level. Honestly, I write in my native tongue and translate via AI and translation tools, so some phrasing may feel odd or imprecise. If you spot anything strange, please let me know in the comments and I will fix it.")>> </div> </div> <div class="disclaimer-point"> <div class="point-badge">4</div> <div class="point-text"> <strong class="point-lead"><<print CC.t("shell.menu.disclaimer_p4_title", {}, "4) Feedback & Community:")>></strong> <<print CC.t("shell.menu.disclaimer_p4_body1", {}, "You are always welcome to leave praise or voice your frustration here:")>> <a class="disclaimer-itch-link" href="https://silkspice.itch.io/corpse-city" target="_blank" rel="noopener noreferrer"> <span class="itch-icon-dot"></span> https://silkspice.itch.io/corpse-city </a> <<print CC.t("shell.menu.disclaimer_p4_body2", {}, "I welcome both praise and constructive critique. Report any bugs, things you disliked, text errors, or narrative contradictions. I am grateful for any feedback and will fix everything as quickly as possible!")>> </div> </div> <div class="disclaimer-actions"> <button type="button" class="button hud-btn disclaimer-ack-btn" data-cc="ui.closeDisclaimer"> <<print CC.t("shell.menu.disclaimer_close", {}, "Understood / Close")>> </button> </div> </div> </div> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shell.play.title", {}, "Subject Initialization")>></h2> <p><<print CC.t("shell.play.lead", {}, "External sensors detect radioactive fallout and silence across the shelter entrance. Are you ready to unseal the airlock?")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Choose_Name"><<print CC.t("shell.play.begin", {}, "Begin New Chronicle")>></a> <a class="button hud-btn back-btn" data-passage="MainMenu"><<print CC.t("shell.play.cancel", {}, "Cancel")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shell.settings.title", {}, "System Settings")>></h2> <p><<print CC.t("shell.settings.lead", {}, "Version 0.3.1 (Rebuild). All logic algorithms, combat system, and UI have been fully migrated to a modular architecture.")>></p> <div id="cc-audio-settings"></div> <div id="cc-visual-settings"></div> <div id="cc-font-settings"></div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MainMenu"><<print CC.t("shell.settings.back", {}, "Main Terminal")>></a> </div> </div>
<<if $player.game_status == 1 && !$combat && !passage().startsWith("Combat_")>> [[Return to Main Menu|MainMenu]] <</if>>
<<widget "CC_LocationsGrid">><<print CC.world.locationsHtml()>><</widget>> <<widget "CC_SceneButtons">><<print CC.scenes.buttonsHtml(CC.transient.get("cc_girl"))>><</widget>> <<widget "CC_GirlInteract">><<print CC.girls.interactHtml($args[0])>><</widget>>
<<if $player.game_status == 1 && !["MainMenu", "About", "Settings", "Changelog", "Play", "Choose_Name", "Luna_Enslave", "Luna_Final", "Luna_AfterMath", "Selena_bunker_sex"].includes(passage())>> <<if CC.time && CC.time.onEnter>><<run CC.time.onEnter(passage())>><</if>> <<print CC.nav.breadcrumbsHtml()>> <<if CC.transient && CC.transient.get("cc_camp_report")>> <div class="terminal-card cc-camp-report"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <<print CC.base.reportHtml()>> <div class="choice-container"> <button type="button" class="button hud-btn back-btn" data-cc="baseUI.dismissCampReport"><<print CC.t("time.camp_continue", {}, "Continue")>></button> </div> </div> <</if>> <div class="top-hud"> <a class="top-hud-avatar-wrap" data-passage="Player_Character" title="Character: Stats & Skills"> <img id="topHudAvatarImg" class="top-hud-avatar-img" src="<<print $player.avatar || 'assets/character/av0.png'>>" alt="Avatar" onerror="this.onerror=null;this.src='assets/character/av0.png'"> <div class="top-hud-avatar-scanline"></div> </a> <div class="top-hud-main"> <div class="top-hud-row top-hud-row--top"> <div class="top-hud-group top-hud-group--player"> <div class="top-hud-id"> <span class="top-hud-rank"><<print CC.t("shell.rank", {}, "SURVIVOR")>></span> <strong class="top-hud-name"><<print $player.name>></strong> </div> <div class="top-hud-cheat-wrap"> <<print CC.cheatUI.buttonHtml()>> <<print CC.cheatUI.panelHtml()>> </div> <span id="topHudDrunkIcon" class="top-hud-status" style="display:none;" data-trait="drunk"><<print CC.icon("drunk")>></span> </div> <div class="top-hud-group top-hud-group--res"> <div class="top-hud-chip top-hud-chip--day" title="Days survived in the Wasteland"> <<print CC.icon("calendar")>> <span class="top-hud-label"><<print CC.t("shell.day", {}, "DAY")>></span> <strong id="topHudDay" class="top-hud-val"><<print (window.CC && CC.day) ? CC.day() : $player.days_survived>></strong> </div> <div class="top-hud-chip top-hud-chip--time"> <span id="topHudTimeIcon"><<print CC.time.icon()>></span> <span id="topHudTimeText" class="top-hud-label"><<print CC.time.name()>></span> </div> <div class="top-hud-chip top-hud-chip--caps" title="Caps (Wasteland currency)"> <img src="assets/icons/caps.png" class="top-hud-res-img" alt="Caps"> <span class="top-hud-label"><<print CC.t("shell.caps", {}, "CAPS")>></span> <strong id="topHudCaps" class="top-hud-val"><<print $player.Caps>></strong> </div> <div class="top-hud-chip top-hud-chip--people" title="Mouths to feed: You + Shelter companions + Slaves"> <<print CC.icon("users")>> <span class="top-hud-label"><<print CC.t("shell.people", {}, "PEOPLE")>></span> <strong id="topHudPeople" class="top-hud-val"><<print (window.CC && CC.base && CC.base.mouths) ? CC.base.mouths() : ($player.survivors_met + $player.slaves)>></strong> </div> </div> </div> <div class="top-hud-row top-hud-row--bottom"> <div class="top-hud-group top-hud-group--meters"> <div class="top-hud-meter top-hud-meter--hp" title="Health"> <span class="top-hud-meter-icon"><<print CC.icon("blood")>></span> <span class="top-hud-meter-text"><<print CC.t("shell.hp", {}, "HP")>> <span id="topHudHpText"><<print $player.health>>/<<print $player.max_health>></span></span> <div class="top-hud-bar-wrap"> <<print '<progress id="playerHealthBar" class="top-hud-progress hp-progress" value="' + $player.health + '" max="' + $player.max_health + '"></progress>'>> </div> </div> <div class="top-hud-meter top-hud-meter--sp" title="Stamina"> <span class="top-hud-meter-icon"><<print CC.icon("energy")>></span> <span class="top-hud-meter-text"><<print CC.t("shell.sp", {}, "SP")>> <span id="staminaValText"><<print $player.stamina>></span>/<span id="topHudMaxSp"><<print $player.max_stamina>></span></span> <div class="top-hud-bar-wrap"> <<print '<progress id="playerStaminaBar" class="top-hud-progress sp-progress" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> </div> </div> <<if !$combat && !passage().startsWith("Combat_")>> <div class="top-hud-group top-hud-group--actions"> <a class="top-hud-btn top-hud-character" data-passage="Player_Character" title="Character: Stats & Skills"><<print CC.icon("character")>></a> <a class="top-hud-btn top-hud-quests" data-passage="Quest_Log" title="Quest Log"><<print CC.icon("scroll")>><<if window.CC && CC.qe && CC.qe.turnInReady && CC.qe.turnInReady().length>><span class="quest-dot" title="Quest ready to turn in!">●</span><</if>></a> <a class="top-hud-btn top-hud-inv" data-passage="Inventory" title="Inventory & Gear"><<print CC.icon("backpack")>></a> <a class="top-hud-btn top-hud-squad" data-passage="Squad" title="Combat Squad"><<print CC.icon("users")>></a> <<if CC.world && CC.world.isWildPassage && CC.world.isWildPassage(passage())>> <button type="button" class="top-hud-btn top-hud-rest" data-cc="baseUI.restCycle"><<print CC.icon("energy")>> <span class="btn-label"><<print CC.t("time.rest", {}, "REST")>></span></button> <button type="button" class="top-hud-btn top-hud-rest" data-cc="baseUI.roughSleep"><<print CC.icon("bed")>> <span class="btn-label"><<print CC.t("time.rough", {}, "CAMP")>></span></button> <</if>> </div> <</if>> </div> </div> </div> <</if>>
<<set _curPassage = passage()>> <<if !$ignorePassages.includes("Squad")>><<set $ignorePassages.push("Squad")>><</if>> <<if !$ignorePassages.includes(_curPassage) && !_curPassage.startsWith("Combat_") && !_curPassage.endsWith("_Encounter") && !_curPassage.endsWith("_Kill") && !_curPassage.endsWith("_Fight") && !(_curPassage.startsWith("Dialogue_") && _curPassage !== "Dialogue_Run")>> <<set $lastPassage = _curPassage>> <</if>> <<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>>
<<set $months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]>> <<set $player = { name: "Nomad", age: "young", avatar: "assets/character/av0.png", health: 100, max_health: 100, stamina: 100, max_stamina: 100, strength_lvl: 0, strength_trainings: 0, endurance_lvl: 0, endurance_trainings: 0, skill_cook: 0, skill_scav: 0, skill_melee: 0, skill_ranged: 0, skill_lumberjack: 0, skill_labor: 0, month_index: 2, current_month: "March", current_year: 2037, days_survived: 1, Canned_Food: 20, Raw_meat: 0, Vegetables: 0, Wood: 0, Mutant_skin: 0, Beast_hide: 0, Bone_Spike: 0, Behemoth_Fang: 0, Iron: 0, labor: 0, Medkit: 2, Caps: 500, Restraints: 5, Pistol: 0, Shotgun: 0, AK47: 0, Pipe_Club: 1, Knife: 0, Baton: 0, Net: 0, Pipe_Bow: 0, Spring_Spear: 0, Gladius: 0, Biggus_Dickus: 0, Handmade_Crossbow: 0, Hunting_Shotgun: 0, Ammo_9mm: 0, Ammo_Rifle: 0, Ammo_Shotgun: 0, Ammo_AK: 0, Ammo_Arrow: 0, Ammo_Bolt: 0, Ammo_Spears: 0, Throwing_Spears: 0, Tincture: 0, Tool_status: "none", Cloth_status: "rags", cloth_rags: 1, cloth_jacket: 0, cloth_leather: 0, cloth_leather_armor: 0, cloth_scout: 0, cloth_scrap_metal: 0, cloth_hastat: 0, cloth_principes: 0, cloth_kevlar: 0, slaves: 0, Weapon_status: "Pipe_Club", Weapon_damage: "4–7", game_status: 0, survivors_met: 1, select_girl: "none", mary_pleaded_before: false, mary_hugged_once: false, severina_status: "unknown", met_valerie: false, meat_quest_active: false, slave_quest_active: false, current_location: "", has_starving_status: false, house_slaves: [], inv_slaves: [], HB1: 0, EB1: 0, Recipe_HB1: 0, Recipe_EB1: 0, Report_ADAM0: 0, stim_used_day: 0, day_phase: 1, last_sleep_day: 1, rest_day: -1, rest_count: 0, rough_day: -1, rough_count: 0, drunk: false, drunk_until_day: 0, severina_drinks_day: 0, severina_drinks_count: 0, aegis_drinks_day: 0, aegis_drinks_count: 0, severina_visits: 0, mary_hug_day: 0, mary_sex_day: 0 }>> <<set $combat = null>> <<set $SlaveQuest_done = 0>> <<set $bunker_quest_progress = "none">> <<set $dominika_betrayed = false>> <<set $dominika_betray_day = 0>> <<set $mistral = { Mistral_Basement: 3, Mistral_Living_room: 1, Mistral_Door_Kitchen: 2, Mistral_Door_Kitchen_loot: 1, Mistral_Stairs_2nd_floor: 2, Mistral_2nd_floor_loot_medkit: 1, Mistral_2nd_floor_loot_caps: 1 }>> <<set $bunker = { loot_medkit: 1, loot_canned_food: 1 }>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, radio_freq: 91.5, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false }>> <<set $discovered_research_station = false>> <<set $discovered_bunker = false>> <<set $discovered_mistral_mansion = false>> <<set $discovered_farm = false>> <<set $discovered_city_center = false>> <<set $discovered_settlement = false>> <<set $discovered_forest = true>> <<set $discovered_dark_forest = false>> <<set $discovered_raider_camp = false>> <<set $discovered_main_road = false>> <<set $discovered_magistral = false>> <<set $discovered_williamson = false>> <<set $discovered_aegis = false>> <<set $aegis_rep = 0>> <<run CC.transient.set("hunt_encounter", null)>> <<run CC.transient.set("hunt_result", null)>> <<run CC.transient.set("hunt_img", null)>> <<set $discovered_dominika = false>> <<set $lastPassage = "House_Life">> <<set $ignorePassages = ["Inventory", "Quest_Log", "Player_Skills", "Player_Character", "Squad", "MainMenu", "About", "Settings", "Changelog", "Play", "Choose_Name"]>>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.bedroom.title", {}, "Common Bedroom")>></h2> <div class="section-divider"><span><<print CC.t("house.bedroom.residents", {}, "RESIDENTS")>></span></div> <div class="residents-tiles"> <<print CC.house.bedroomTilesHtml()>> </div> <<if !CC.house.hasResidents()>> <div class="cc-empty"> <p><<print CC.icon("users")>> <strong><<print CC.t("house.bedroom.empty", {}, "Bedroom is empty")>></strong><<print CC.t("house.bedroom.empty_hint", {}, "no survivors rescued yet.")>></p> <p><<print CC.t("house.bedroom.empty_lead", {}, "Head out to the perimeter, explore locations, and complete quests to encounter survivors.")>></p> <a class="button hud-btn btn-primary" data-passage="Outside"><<print CC.icon("eye")>> <<print CC.t("house.bedroom.scout", {}, "Go Scouting")>></a> </div> <</if>> <<print CC.house.bedroomHtml()>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="bunker-clock"> <span><<print CC.t("house.day", {}, "DAY:")>> <strong><<print $player.days_survived>></strong></span> <span><<print CC.time.name()>> </span> <span><<print CC.t("house.month", {}, "MONTH:")>> <strong><<print $player.current_month>></strong></span> <span><<print CC.t("house.year", {}, "YEAR:")>> <strong><<print $player.current_year>></strong></span> </div> <h2><<print CC.t("house.title", {}, "Shelter Alpha")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/new hope/house/house.jpg" alt="Shelter" class="big-image"> </div> <<if $player.has_starving_status>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("house.starvation", {}, "STARVATION!")>></span> <p><<print CC.t("house.starvation_text", {}, "Rations depleted.")>></p> </div> <</if>> <<print CC.base.digestHtml()>> <<print CC.house.navHtml()>> <div class="choice-container"> <<if $player.stamina < 20>> <div class="hud-alert"><<print CC.t("house.exhausted", {}, "Exhausted!")>></div> <<else>> <a class="button hud-btn main-btn" data-passage="Outside"><<print CC.t("house.exit", {}, "Open Exit Airlock")>></a> <</if>> <a class="button hud-btn" data-passage="Rest"><<print CC.t("house.sleep", {}, "Enter Sleep Mode")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.util.title", {}, "Utility Block")>></h2> <<print CC.house.utilHtml()>> <<print CC.house.gymHtml()>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("workshop.title", {}, "Workshop")>></h2> <<if !CC.workshop.isCleared()>> <div class="hud-alert cc-mb12"> <<print CC.icon("warning")>> <<print CC.t("workshop.unconverted", {}, "The workshop is blocked by collapsed steel beams, scorched workbenches, and twisted metal wreckage. Clear the debris to restore power tools and workbenches.")>> </div> <<print CC.workshop.renderBlockedHtml()>> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> <<else>> <<print CC.workshop.html()>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.yard.title", {}, "Yard & Fortifications")>></h2> <p><<print CC.t("house.yard.lead", {}, "Garden, shelter fortifications, and infirmary. Construction costs caps.")>></p> <<print CC.base.buildHtml()>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> </div>
<div class="terminal-card inv-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="inv-title-row"> <h2 class="inv-main-title"><<print CC.icon("backpack")>> <<print CC.t("house.inv.title", {}, "INVENTORY & EQUIPMENT")>></h2> </div> <<run CC.gear.ensure()>> <div class="inv-layout-grid"> <div class="inv-col inv-col--main"> <<print CC.squadUI.dresserHtml()>> <<print CC.house.invSlavesHtml()>> </div> <div class="inv-col inv-col--side"> <<print CC.gear.packHtml()>> <<print CC.gear.quickUseHtml()>> <<print CC.gear.docsHtml()>> </div> </div> <div class="choice-container cc-mt12"> <<set _invReturn = ($lastPassage && !["Inventory", "Quest_Log", "Player_Skills", "Player_Character", "Squad"].includes($lastPassage)) ? $lastPassage : "House_Life">> <<print '<a class="button hud-btn back-btn" data-passage="' + _invReturn + '">' + CC.t("dlg.back_short", {}, "← Return") + '</a>' >> </div> <div id="cc-doc-modal" class="doc-modal-overlay"> <div class="doc-modal-backdrop" data-cc="gearUI.closeDoc"></div> <div class="terminal-card doc-modal-window"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="doc-modal-header"> <div> <span class="doc-stamp"><<print CC.t("docs.adam0_stamp", {}, "RESTRICTED // BIO-HAZARD CLASS IX // DECLASSIFIED RECORD")>></span> <h2 class="doc-modal-title"><<print CC.t("docs.adam0_title", {}, "INCIDENT DOSSIER: STRAIN ADAM-0")>></h2> <div class="doc-modal-subtitle"><<print CC.t("docs.adam0_subtitle", {}, "OBSERVATION POST SECTOR 7 // ADVANCED BIOGENETICS FACILITY")>></div> </div> <button type="button" class="doc-modal-close" data-cc="gearUI.closeDoc" title="Close">✕</button> </div> <div class="doc-content-body"> <div style="font-size: 11px; color: var(--phos-dim); margin-bottom: 12px; border-bottom: 1px dashed var(--line); padding-bottom: 6px;"> <<print CC.t("docs.adam0_lead", {}, "LOGGED: OCTOBER 14, 2025 | LEVEL 5 SECURITY DIRECTIVE")>> </div> <div class="doc-section-title"><<print CC.t("docs.adam0_sec1_title", {}, "1. TACTICAL TARGETING & GENOME VECTOR")>></div> <p><<print CC.t("docs.adam0_sec1_text", {}, "The synthetic pathogen designated \"ADAM-0\" was engineered as an asymmetric vector intended to paralyze hostile force mobilization. Utilizing recombinant gene-drives, the retrovirus was programmed to selectively bind to male-specific sex-determining region Y (SRY) proteins, initiating acute chromosomal decay and systemic endocrine necrosis within 48–72 hours.")>></p> <div class="doc-section-title"><<print CC.t("docs.adam0_sec2_title", {}, "2. CONTAINMENT FAILURE & AIRBORNE MUTATION")>></div> <p><<print CC.t("docs.adam0_sec2_text", {}, "During weaponization stabilization trials at Sector 7, air filtration scrubbers collapsed under catastrophic stress. An uncontrolled aerosol plume vented directly into the regional troposphere. Upon interacting with industrial particulates, the pathogen underwent rapid mutation, achieving permanent atmospheric transmission. Primary vector mortality among biological males exceeded 97.4% across monitored metropolitan sectors.")>></p> <div class="doc-section-title"><<print CC.t("docs.adam0_sec3_title", {}, "3. RADIOLOGICAL MUTAGENESIS (THE NECRO-PHASE)")>></div> <p><<print CC.t("docs.adam0_sec3_text", {}, "Subsequent retaliatory strikes deploying cobalt and chemical warheads failed to cleanse the contagion. Exposure to ionizing radiation accelerated viral re-coding: residual ADAM-0 strains merged with necrotic male and female host tissues. This unprecedented biological reaction spurred malignant cellular regeneration—giving birth to the feral ghouls, flesh horrors, and plague mutants that currently swarm the ruins.")>></p> <div class="doc-section-title"><<print CC.t("docs.adam0_sec4_title", {}, "4. TERMINAL EXECUTIVE DIRECTIVE")>></div> <p><<print CC.t("docs.adam0_sec4_text", {}, "All synthesized antigens and blood-filtration protocols have failed to arrest retroviral binding. Counter-agent synthesis efficiency: 0.0%. Survival expectation for unsealed personnel: none. PER MILITARY COMMAND: EVACUATION CANCELED. BLAST DOORS SEALED. OBJECT ABANDONED.")>></p> <div class="doc-warning-box"> <strong><<print CC.t("docs.adam0_footer", {}, "[END OF REPORT — RECOVERY RESTRICTED BY SENATE ORDER]")>></strong> </div> </div> <div style="margin-top: 18px; text-align: right;"> <button type="button" class="button hud-btn back-btn" data-cc="gearUI.closeDoc"><<print CC.t("docs.btn_close", {}, "Close Dossier")>></button> </div> </div> </div> </div>
<div class="terminal-card character-main-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.icon("character")>> <<print CC.t("house.char.title", {}, "Character")>></h2> <<print CC.skillsUI.renderCharacterHtml()>> <div class="choice-container cc-mt12"> <<set _charReturn = ($lastPassage && !["Player_Character", "Player_Skills", "Inventory", "Quest_Log", "Squad"].includes($lastPassage)) ? $lastPassage : "House_Life">> <<print '<a class="button hud-btn back-btn" data-passage="' + _charReturn + '">' + CC.t("dlg.back_short", {}, "← Return") + '</a>' >> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.quests.title", {}, "Quest & Contract Log")>></h2> <div class="section-divider"><span><<print CC.t("house.quests.contracts", {}, "SETTLEMENT CONTRACTS")>></span></div> <div class="trade-table"> <<print CC.qe.contractsHtml()>> </div> <div class="section-divider"><span><<print CC.t("house.quests.story", {}, "STORY QUESTS")>></span></div> <div class="trade-table"> <<print CC.qe.questsHtml()>> </div> <div class="section-divider"><span><<print CC.t("house.quests.chronicle", {}, "CHRONICLE OF EVENTS")>></span></div> <<print CC.qe.journalHtml()>> <div class="choice-container"> <<set _questReturn = ($lastPassage && !["Quest_Log", "Inventory", "Player_Skills", "Player_Character", "Squad"].includes($lastPassage)) ? $lastPassage : "House_Life">> <<print '<a class="button hud-btn main-btn" data-passage="' + _questReturn + '">' + CC.t("dlg.back_short", {}, "← Return") + '</a>' >> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.rest.title", {}, "Night Regeneration")>></h2> <p><<print CC.t("house.rest.lead", {}, "Airlocks sealed, air filtration active. Another post-apocalyptic night falls.")>></p> <<run CC.base.night()>> <<print CC.base.reportHtml()>> <div class="choice-container"> <<if CC.transient.get("cc_base_report") && CC.transient.get("cc_base_report").player_starved>> <a class="button hud-btn danger-choice" data-passage="Starve_Death"><<print CC.t("house.rest.starve", {}, "Face the end")>></a> <<elseif CC.transient.get("shelter_raid_pending")>> <a class="button hud-btn danger-choice" data-passage="Shelter_Raid_Encounter"><<print CC.icon("warning")>> <<print CC.t("house.rest.raid_alert", {}, "Raid Alert: Raiders at the gate!")>></a> <<elseif CC.transient.get("shelter_thief_pending")>> <a class="button hud-btn warning-choice" data-passage="Shelter_Thief_Encounter"><<print CC.icon("warning")>> <<print CC.t("shelter.events_thief_alert", {}, "Incident: Rustling in the Pantry!")>></a> <<else>> <a class="button hud-btn main-btn" data-passage="House_Life"><<print CC.t("house.rest.newday", {}, "Begin New Day")>></a> <</if>> </div> </div>
<<set _raid = (CC.transient && CC.transient.get("shelter_raid_pending")) || { raiders_count: 1, bribe: 150 }>> <<set _p = (CC.legacy && CC.legacy.getPlayer) ? CC.legacy.getPlayer() : null>> <<set _caps = _p ? (Number(_p.Caps) || 0) : 0>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/Raider/raider.png" alt="Raiders" class="character-image"> </div> <h2><<print CC.t("shelter.raid_scene_title", {}, "SHELTER DEFENSE RAIDERS AT THE GATE")>></h2> <p><<print CC.t("shelter.raid_scene_lead", {}, "Armed raiders have tracked your shelter and blocked the heavydoors. They are heavily equipped and ready for violence.")>></p> <div class="dialogue-line"> <span class="speaker-label">(Raiders)</span> <<print CC.t("shelter.raid_scene_demand", { caps: _raid.bribe }, '"Hey, in there! Pay us ' + _raid.bribe + ' caps peace tribute and we leave without trouble. Otherwise we blow the airlock and take everything!"')>> </div> <div class="choice-container cc-mt16"> <<if _caps >= _raid.bribe>> <a class="button hud-btn main-btn" data-passage="Shelter_Raid_Pay"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> <<print CC.t("shelter.raid_scene_pay", { caps: _raid.bribe }, "Pay Peace Tribute (" + _raid.bribe + " caps)")>></a> <<else>> <span class="button hud-btn disabled-btn"><<print CC.t("shelter.raid_scene_nocaps", { cur: _caps, caps: _raid.bribe }, "Not enough caps for tribute (" + _caps + "/" + _raid.bribe + ")")>></span> <</if>> <a class="button hud-btn danger-choice" data-passage="Shelter_Raid_Fight"><<print CC.icon("swords")>> <<print CC.t("shelter.raid_scene_fight", {}, "Engage in combat!")>></a> </div> </div>
<<set _raid = (CC.transient && CC.transient.get("shelter_raid_pending")) || { raiders_count: 1 }>> <<set $combat = CC.base.startShelterRaidFight(_raid.raiders_count)>> <<goto "Combat_Enemy_Turn">>
<<run CC.base.payShelterRaidBribe()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shelter.raid_pay_title", {}, "PEACE TRIBUTE PAID")>></h2> <p><<print CC.t("shelter.raid_pay_lead", {}, "The raiders eagerly gather the bottle caps, laughing as they lower their weapons. The leader knocks on the metal door with her pipe club, nods dismissively, and the gang vanishes back into the darkened ruins. The shelter remains unharmed.")>></p> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="House_Life"><<print CC.t("shelter.raid_pay_return", {}, "Return to Shelter Life")>></a> </div> </div>
<<run CC.shelterEvents.getPendingThief()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/slave/slave.png" alt="Intruder" class="character-image"> </div> <h2><<print CC.t("shelter.events_thief_title", {}, "NIGHT INTRUDER IN THE PANTRY")>></h2> <p><<print CC.t("shelter.events_thief_lead_1", {}, "In the dead of night, a strange noise wakes you. You advance silently toward the food storage and see an emaciated, trembling girl kneeling beside an open crate of rations.")>></p> <p><<print CC.t("shelter.events_thief_lead_2", {}, "Her fingers clutch an opened tin of meat, her eyes dilated in animal terror. Seeing the weapon, she drops the can, falls to her knees, covers her head with her hands, and weeps desperately:")>></p> <div class="dialogue-line"> <span class="speaker-label">(Intruder)</span> <<print CC.t("shelter.events_thief_speech", {}, '"Please... don\'t kill me! I beg you! I haven\'t eaten in four days... I saw an exhaust vent in the wasteland and squeezed through the grate... I didn\'t mean to break anything! I\'ll work it off, I\'ll scrub the floors, haul scrap, do whatever you order just don\'t kill me, I beg you!..."')>> </div> <div class="choice-container cc-mt16"> <<set _restraints = (CC.player && CC.player.get ? CC.player.get("Restraints", 0) : ($player ? $player.Restraints : 0)) || 0>> <<if _restraints >= 1>> <a class="button hud-btn main-btn" data-passage="Shelter_Thief_Enslave"><<print CC.gear.img("Restraints", "chip-icon", "item-frame-loot")>> <<print CC.t("shelter.events_thief_choice_enslave", {}, "Put in Chains (Enslave)")>></a> <<else>> <span class="button hud-btn choice-locked cc-disabled" title="<<print CC.t('shelter.events_thief_no_restraints_tip', {}, 'No Restraints in inventory!')>>"><<print CC.gear.img("Restraints", "chip-icon", "item-frame-loot")>> <<print CC.t("shelter.events_thief_choice_enslave_locked", {}, "Put in Chains (Requires Restraints)")>></span> <</if>> <a class="button hud-btn danger-choice" data-passage="Shelter_Thief_Exile"><<print CC.icon("warning")>> <<print CC.t("shelter.events_thief_choice_exile", {}, "Exile the Thief into the Wasteland")>></a> </div> </div>
<<run CC.shelterEvents.enslaveThief()>> <<set _res = (CC.transient && CC.transient.get("shelter_thief_enslaved")) || {}>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/slave/slave.png" alt="Captive" class="character-image"> </div> <h2><<print CC.t("shelter.events_thief_enslave_title", {}, "INTRUDER SUBJUGATED")>></h2> <p><<print CC.t("shelter.events_thief_enslave_desc", {}, "You click heavy steel restraints around her wrists. The girl flinches, but offers no resistance, meekly offering her hands and swallowing tears of relief that she was spared. She is frail and starved, but now under your direct command in your escort squad, she will earn every scrap of bread.")>></p> <<if _res && _res.name>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("shelter.events_thief_enslave_res", { name: _res.name }, "A new captive has joined your escort squad: " + _res.name + ".")>></p> <</if>> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="House_Life"><<print CC.t("shelter.events_return_life", {}, "Return to Shelter Life")>></a> </div> </div>
<<run CC.shelterEvents.exileThief()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("shelter.events_thief_exile_title", {}, "INTRUDER EXPELLED")>></h2> <p><<print CC.t("shelter.events_thief_exile_desc", {}, "You gather the scattered rations, haul the shivering girl to her feet by the collar, and march her to the outer airlock. The heavy door grinds open, admitting the whistle of freezing irradiated wind. She sobs, clutching at the doorframe, but a firm shove sends her tumbling back into the darkness of the dead city. The latch clangs shut, sealing the door.")>></p> <p class="reward"><<print CC.icon("check")>> <<print CC.t("shelter.events_thief_exile_res", {}, "Pantry rations secured. The intruder was expelled into the dark ruins.")>></p> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="House_Life"><<print CC.t("shelter.events_return_life", {}, "Return to Shelter Life")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.slave.title", {}, "Basement Captive Quarters")>></h2> <<if !CC.house.converted()>> <div class="hud-alert cc-mb12"> <<print CC.icon("warning")>> <<print CC.t("house.slave.unconverted", {}, "The basement is buried under concrete debris and rust. Refurbish it to install cages and contain captives.")>> </div> <<print CC.upgrades.renderBasement()>> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.back_quarters", {}, "← Back to Living Quarters")>></a> </div> <<else>> <div class="cc-flex-row cc-mb12"> <span class="top-hud-chip"><<print CC.icon("cage")>> <<print CC.t("house.slave.cages", {}, "CAGES:")>> <strong><<print CC.house.basementOccupants().length>> / <<print CC.house.slaveCap()>></strong></span> <span class="top-hud-chip"><<print CC.icon("door")>> <<print CC.t("house.slave.vacant", {}, "VACANT:")>> <strong><<print Math.max(0, CC.house.freeCage())>></strong></span> <span class="top-hud-chip"><<print CC.icon("chain")>> <<print CC.t("house.slave.chains", {}, "CHAINS:")>> <strong><<print CC.house.hasChain("basement") ? CC.t("house.slave.installed", {}, "INSTALLED") : CC.t("house.slave.none", {}, "NONE")>></strong></span> </div> <<if CC.house.freeCage() < 0>> <div class="hud-alert cc-mb12"> <<print CC.icon("warning")>> <<print CC.t("house.slave.overcrowd", { n: -CC.house.freeCage() }, "OVERCROWDING: " + (-CC.house.freeCage()) + " captives are sleeping on the bare floor!")>> </div> <</if>> <div class="section-divider"><span><<print CC.icon("cage")>> <<print CC.t("house.slave.captives", {}, "CAPTIVES IN BASEMENT CAGES")>></span></div> <div class="residents-tiles"> <<print CC.house.basementTilesHtml()>> </div> <<if !CC.house.hasSlaves()>> <div class="cc-empty"> <p><<print CC.icon("cage")>> <strong><<print CC.t("house.slave.empty", {}, "Cages are empty")>></strong>.</p> <p class="cc-dim-italic"><<print CC.t("house.slave.empty_hint", {}, "You can purchase captives at the settlement slave market or capture raiders using restraints during encounters across the city.")>></p> </div> <</if>> <<print CC.upgrades.renderBasement()>> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("house.slave.back_shelter", {}, "← Return to Shelter Living Quarters")>></a> </div> <</if>> </div>
<div class="terminal-card squad-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag cc-tag-compact"><<print CC.t("squad.tag", {}, "COMBAT SQUAD")>></div> <h2><<print CC.icon("users")>> <<print CC.t("squad.title", {}, "Squad")>></h2> <p class="squad-hint"><<print CC.t("squad.hint", {}, "Fighters are taken from the Bedroom and Basement only. Slaves need Submission 70+, allies need Trust 20+. Dress them in the Inventory. Ammo comes from your pack.")>></p> <<print CC.squadUI.listHtml()>> <div class="choice-container"> <<set _sqReturn = ($lastPassage && !["Squad", "Inventory", "Quest_Log", "Player_Skills", "Player_Character"].includes($lastPassage)) ? $lastPassage : "House_Life">> <<print '<a class="button hud-btn back-btn" data-passage="' + _sqReturn + '">' + CC.icon("home") + " " + CC.t("squad.back", {}, "Back") + '</a>' >> </div> </div>
<<set $player.game_status = 0>> <<set $player.health = 0>> <<set $lastPassage = null>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("house.starve.title", {}, "Starvation The End")>></h2> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("house.starve.banner", {}, "YOU STARVED TO DEATH")>></span> <p><<print CC.t("house.starve.lead", {}, "Hunger hollowed you out. On the last night your strength gave out, and the shelter fell silent.")>></p> <p><<print CC.t("house.starve.day", { n: $player.days_survived }, "Day " + $player.days_survived + "the run is over. Start over or load a save.")>></p> </div> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="MainMenu"><<print CC.t("house.starve.back", {}, "Return to Main Menu")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="char-dossier"> <div class="media-frame"> <img src="assets/NPC/valerie/valerie.png" alt="Valerie" class="character-image"> </div> <div class="char-dossier-panel"> <div class="char-dossier-name"><<print CC.t("world.admin.name", {}, "VALERIE")>></div> <div class="char-dossier-role"><<print CC.t("world.admin.role", {}, "Military Praetor of Outpost \"New Hope\"")>></div> <div class="char-dossier-grid"> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.admin.age", {}, "Age")>></span><span class="dossier-val"><<print CC.t("world.admin.age_v", {}, "38 years")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.admin.status", {}, "Status")>></span><span class="dossier-val dossier-val-status is-dictator"><<print CC.t("world.admin.status_v", {}, "Commander")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.admin.faction", {}, "Faction")>></span><span class="dossier-val"><<print CC.t("world.admin.faction_v", {}, "Senate of Aegis (Lex Aegis)")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.admin.standing", {}, "Standing")>></span><span class="dossier-val"><<print CC.rep.standingText()>></span></div> </div> <div class="dossier-footer"><<print CC.t("world.admin.footer", {}, "ACCESS: PRAETORATE • LEVEL: COMMAND")>></div> </div> </div> <<if !$player.met_valerie>> <<set $player.met_valerie = true>> <div class="dialogue-line"> <span class="speaker-label">(Valerie)</span> <<print CC.t("world.admin.greet", {}, "\"I am Commander Valerie, appointed by the Senate of Aegis to hold the perimeter of New Hope. We need provisions for our troops and labor to raise defensive walls. Make yourself useful and you will be richly rewarded.\"")>> </div> <</if>> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Contracts"><<print CC.icon("contract")>> <<print CC.t("quests.open", {}, "Contracts")>></a> <a class="button hud-btn light-choice" data-passage="Dialogue_ValerieTalk"><<print CC.icon("chat")>> <<print CC.t("world.admin.talk", {}, "Talk to Valerie")>></a> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("world.admin.exit", {}, "Exit to Square")>></a> </div> </div>
<<if !["Aegis_Senate", "Aegis_Senate_Guard", "Aegis_Bar", "Aegis_Market", "Aegis_Slave_Market", "Aegis_ResidentialDistrict", "Aegis_Baths", "Aegis_Brothel", "Aegis_Brothel_Fertilizer", "Aegis_Brothel_PleasureHall", "Aegis_Command", "Maya"].includes(previous())>> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2>Grand Republic Settlement "Aegis"</h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/egida.png" alt="Aegis" class="big-image"> </div> <p>A formidable bastion of civilization amidst the ruins, ruled by the Senate. Behind reinforced monolithic concrete ramparts, the strict legal codex <em>Lex Aegis</em> governs all life. Patrols of legionnaires in heavy assault armor vigilantly guard the main gateway against raiders and mutants.</p> <<set _repHostile = CC.rep && CC.rep.isHostile && CC.rep.isHostile()>> <<if _repHostile>> <h3 class="damage"><<print CC.icon("warning")>> <<print CC.t("rep.gate_aegis_title", {}, "AEGIS GATES SHUT")>></h3> <p class="damage"><<print CC.t("rep.gate_lead", {}, "The gates are barred. Legionaries on the wall track you with levelled weapons the Senate bounty board carries your name after the caravan raid.")>></p> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("rep.gate_warn", {}, "WARNING: KILL-ON-SIGHT ORDER")>></span> <p><<print CC.t("rep.gate_elite_desc", {}, "Five Senate veterans in Hastatus and Principes plate bar the gatehouse, rifles, an assault rifle, gladiators' blades and a combat shotgun at the ready.")>></p> </div> <div class="choice-container"> <<if CC.rep && CC.rep.gateFoughtToday && CC.rep.gateFoughtToday("aegis")>> <p class="cc-dim-italic"><<print CC.t("rep.gate_cooldown", {}, "The gate guard licks its wounds and stays behind the wall for today. The gates remain shut come back tomorrow, or settle the bounty.")>></p> <<else>> <a class="button hud-btn danger-choice" data-passage="Combat_AegisGate"><<print CC.icon("swords")>> <<print CC.t("rep.gate_fight", { n: 5 }, "Fight the Gate Guard (5 Legionaries)")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Williamson"><<print CC.t("rep.gate_back_aegis", {}, "← Fall back to Williamson")>></a> </div> <<else>> <div class="locations-grid"> <a class="location-btn" data-passage="Aegis_Senate"><<print CC.icon("admin")>> Senate</a> <a class="location-btn" data-passage="Aegis_Command"><<print CC.icon("shield")>> <<print CC.t("world.command.link", {}, "Principia")>></a> <a class="location-btn" data-passage="Aegis_Bar"><<print CC.icon("bar")>> Bar</a> <a class="location-btn" data-passage="Aegis_Market"><<print CC.icon("cart")>> Market</a> <a class="location-btn" data-passage="Aegis_Slave_Market"><<print CC.icon("chain")>> Slave Market</a> <a class="location-btn" data-passage="Aegis_ResidentialDistrict"><<print CC.icon("district")>> Residential Quarters</a> <a class="location-btn" data-passage="Aegis_Baths"><<print CC.icon("shower")>> <<print CC.t("aegis_baths.name", {}, "Thermae")>></a> </div> <<if CC.caravan && CC.caravan.bannerHtml>> <<print CC.caravan.bannerHtml(passage())>> <</if>> <div class="choice-container"> <<set _caravanProg = (CC.caravanQuest && CC.caravanQuest.state ? CC.caravanQuest.state().progress : 0) || 0>> <<if (CC.flags.get("cornelia_caravan_escort_active") || (CC.qe && CC.qe.stage("cornelia_caravan_contract") === "active")) && _caravanProg < 10>> <a class="button hud-btn main-btn" data-passage="Quest_Caravan_Escort"><<print CC.icon("shield")>> <<print CC.t("caravan_quest.continue_escort", {}, "Escort Caravan to New Hope")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Williamson">← To Williamson</a> </div> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2>Aegis Bar</h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/bar/bar.jpg" alt="Bar" class="big-image"> </div> <p><<print CC.t("aegis_bar.lead", {}, "A smoky bar. Caps on wood, moonshine in glass.")>></p> <<set _cost to CC.bal("bar.aegis_drink_caps", 5)>> <<set _sp to CC.bal("bar.aegis_drink_sp", 5)>> <<set _max to CC.bal("bar.aegis_drink_max", 3)>> <<set _day to CC.day()>> <<if $player.aegis_drinks_day != _day>> <<set $player.aegis_drinks_day to _day>> <<set $player.aegis_drinks_count to 0>> <</if>> <<set _count to Number($player.aegis_drinks_count) || 0>> <<set _left to _max - _count>> <<set _caps to Number($player.Caps) || 0>> <p class="cc-dim-small"><<print CC.t("aegis_bar.status", {left: _left, max: _max, cost: _cost, sp: _sp}, "")>></p> <<set _drank to CC.transient.get("cc_aegis_drank", 0)>> <<if _drank > 0>> <<run CC.transient.set("cc_aegis_drank", 0)>> <<if _drank >= 2>> <p class="hazard-notice"><<print CC.t("aegis_bar.result_drunk", {}, "Drunk!")>></p> <<else>> <p class="reward"><<print CC.t("aegis_bar.result_ok", {sp: _sp}, "")>></p> <</if>> <</if>> <div class="choice-container"> <<if _left > 0 and _caps >= _cost>> <<button "Have a shot of moonshine">> <<set $player.Caps to Math.max(0, (Number($player.Caps) || 0) - _cost)>> <<set $player.stamina to Math.min($player.max_stamina || 100, (Number($player.stamina) || 0) + _sp)>> <<set $player.aegis_drinks_count to ((($player.aegis_drinks_day === _day) ? (Number($player.aegis_drinks_count) || 0) : 0) + 1)>> <<set $player.aegis_drinks_day to _day>> <<if $player.aegis_drinks_count >= _max>> <<run CC.player.setDrunk(_day + 1)>> <<run CC.transient.set("cc_aegis_drank", 2)>> <<else>> <<run CC.transient.set("cc_aegis_drank", 1)>> <</if>> <<goto "Aegis_Bar">> <</button>> <<elseif _left <= 0>> <p class="cc-dim-small"><<print CC.t("aegis_bar.limit", {max: _max}, "")>></p> <<else>> <p class="hud-alert"><<print CC.t("aegis_bar.no_caps", {cost: _cost}, "")>></p> <</if>> <a class="button hud-btn back-btn" data-passage="Aegis">← Return to Aegis</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("aegis_baths.title", {}, "Thermae of Aegis")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/term/term.jpg" alt="Thermae" class="big-image"> </div> <p><<print CC.t("aegis_baths.lead", {}, "Hot steam rises over marble pools.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Aegis">← Return to Aegis</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("aegis_brothel.title", {}, "Brothel")>></h2> <p><<print CC.t("aegis_brothel.lead", {}, "You see an unusual scene in which women are serving women at the entrance on the right, marked “Fertilizer” ")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Aegis_Brothel_Fertilizer"><<print CC.t("aegis_brothel.enter_fertilizer", {}, "Enter “Fertilizer”")>></a> <a class="button hud-btn main-btn" data-passage="Aegis_Brothel_PleasureHall"><<print CC.t("aegis_brothel.enter_pleasure_hall", {}, "Pleasure Hall")>></a> <a class="button hud-btn back-btn" data-passage="Aegis_ResidentialDistrict">← Return to Residential Quarters</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("aegis_brothel.fertilizer_title", {}, "Fertilizer")>></h2> <div class="media-frame"> <video class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/Location/settlement/egida/live district/brothel/Fertilizer.mp4" type="video/mp4"> </video> </div> <p><<print CC.t("aegis_brothel.fertilizer_desc", {}, "As soon as you walk in, an incredible scene unfolds before you: a group of men having sex an unusual sight these days. Many factions wage full-scale wars over such a valuable resource, while Aegis uses it however it pleases, though it seems the men here are in relative paradise compared to the loners of the wasteland.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Aegis_Brothel"><<print CC.t("aegis_brothel.exit_btn", {}, "Back")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("aegis_brothel.pleasure_hall_title", {}, "Pleasure Hall")>></h2> <div class="media-frame"> <img src="assets/Other/indevelopment.png" alt="In Development" class="big-image"> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Aegis_Brothel"><<print CC.t("aegis_brothel.exit_btn", {}, "Back")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="char-dossier"> <div class="media-frame"> <img src="assets/NPC/cornelia/cornelia.png" alt="Cornelia" class="character-image"> </div> <div class="char-dossier-panel"> <div class="char-dossier-name"><<print CC.t("world.command.name", {}, "CORNELIA")>></div> <div class="char-dossier-role"><<print CC.t("world.command.role", {}, "Legate of Aegis")>></div> <div class="char-dossier-grid"> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.command.age", {}, "Age")>></span><span class="dossier-val"><<print CC.t("world.command.age_v", {}, "35 years")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.command.status", {}, "Rank")>></span><span class="dossier-val dossier-val-status is-dictator"><<print CC.t("world.command.status_v", {}, "Legate")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.command.faction", {}, "Faction")>></span><span class="dossier-val"><<print CC.t("world.command.faction_v", {}, "Senate of Aegis (Lex Aegis)")>></span></div> <div class="dossier-row"><span class="dossier-label"><<print CC.t("world.command.standing", {}, "Standing")>></span><span class="dossier-val"><<print CC.rep.standingText()>></span></div> </div> <div class="dossier-footer"><<print CC.t("world.command.footer", {}, "ACCESS: LEGATE • LEVEL: COMMAND")>></div> </div> </div> <<if !CC.flags.get("met_cornelia", false)>> <<if $player.met_cornelia>><<run CC.flags.set("met_cornelia", true)>><</if>> <</if>> <<if !CC.flags.get("met_cornelia", false)>> <<run CC.flags.set("met_cornelia", true)>> <div class="dialogue-line"> <span class="speaker-label">(Cornelia)</span> <<print CC.t("world.command.greet", {}, "\"I am Legate Cornelia. Aegis stands because my legionaries hold the line without mercy to our enemies. You serve with discipline, you get paid in full. You cross us, you end up in a ditch outside the walls.\"")>> </div> <</if>> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Aegis_Contracts"><<print CC.icon("contract")>> <<print CC.t("quests.open", {}, "Contracts")>></a> <a class="button hud-btn light-choice" data-passage="Aegis_Command_Trade"><<print CC.icon("cart")>> <<print CC.t("world.command.trade", {}, "Trade")>></a> <a class="button hud-btn light-choice" data-passage="Dialogue_CorneliaTalk"><<print CC.icon("chat")>> <<print CC.t("world.command.talk", {}, "Talk to Cornelia")>></a> <a class="button hud-btn back-btn" data-passage="Aegis"><<print CC.t("world.command.exit", {}, "Exit to Aegis")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.command.trade_title", {}, "AEGIS COMMAND • MILITARY REQUISITIONS")>></h2> <p class="flavor-text"><<print CC.t("world.command.trade_lead", {}, "Legate Cornelia oversees military supply and technical documentation. Surplus blueprints are available for trusted contractors.")>></p> <<print CC.legateTrade.html()>> <div class="choice-container contracts-nav cc-mt12"> <a class="button hud-btn back-btn" data-passage="Aegis_Command"><<print CC.t("world.command.back_command", {}, "← Back to Principia")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("quests.title_aegis", {}, "AEGIS CONTRACTS")>></h2> <<set _rw to CC.qe.takeReward()>> <<if _rw>> <<print CC.qe.rewardHtml(_rw)>> <</if>> <<set _live to CC.qe.liveContracts("Legate Cornelia")>> <<if !_live.length>> <div class="trade-table"><div class="item-row"><span class="item-name item-empty"><<print CC.t("quests.empty_aegis", {}, "No active Aegis contracts right now. Check back later Legate Cornelia posts new ones regularly.")>></span></div></div> <<else>> <<print CC.qeUI.cardHtml("Legate Cornelia")>> <</if>> <div class="choice-container contracts-nav"> <a class="button hud-btn back-btn" data-passage="Aegis_Command"><<print CC.t("quests.back_command", {}, "← Back to Principia")>></a> </div> </div>
<<run CC.transient.set("cc_market_id", "aegis")>> <<run CC.market2.drift()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.aegis_market.title", {}, "Aegis Market")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/market/market.jpg" alt="Aegis Market" class="big-image"> </div> <div id="shop-wrapper"> <<print CC.market2.shopHtml("aegis")>> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="Aegis"><<print CC.t("world.aegis_market.back", {}, "← Return to Aegis")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2>Aegis Residential Quarters</h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/live district/live_district.jpg" alt="Residential Quarters" class="big-image"> </div> <div class="locations-grid"> <a class="location-btn" data-passage="Aegis_Brothel"><<print CC.icon("heart")>> <<print CC.t("aegis_brothel.name", {}, "Brothel")>></a> <<if !CC.time.isNight()>> <a class="location-btn" data-passage="Maya"><<print CC.icon("chain")>> Maya Slaver</a> <</if>> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Aegis">← Return to Aegis</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2>Senate of Aegis</h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/senate/senate.jpg" alt="Senate" class="big-image"> </div> <p><<print CC.t("aegis_senate.lead", {}, "Marble steps lead to the massive Senate doors. Guards in heavy assault armor watch everyone who approaches.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Aegis_Senate_Guard"><<print CC.t("aegis_senate.enter", {}, "Enter")>></a> <a class="button hud-btn back-btn" data-passage="Aegis">← Return to Aegis</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2>Senate of Aegis Entrance</h2> <div class="media-frame"> <img src="assets/NPC/senate_guard/senat_guard.png" alt="Senate guardswoman" class="character-image"> </div> <div class="dialogue-line"><span class="speaker-label">(<<print CC.t("aegis_senate.guard_name", {}, "GUARD")>>)</span> <<print CC.t("aegis_senate.guard_stop", {}, "Where do you think you're going? Entry is for senatoresses and their retinue only piss off, cocksucker!")>></div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Aegis_Senate">← Back to Senate steps</a> <a class="button hud-btn back-btn" data-passage="Aegis">← Return to Aegis</a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.aegis_slave.title", {}, "Aegis Slave Market")>></h2> <div class="media-frame"><img src="assets/NPC/cassia/cassia.png" alt="Slaver Cassia" class="character-image"></div> <div class="dialogue-line"><span class="speaker-label">(Slaver Cassia)</span> <<print CC.t("world.aegis_slave.cassia", {}, '"These slaves are gathered from across the entire empire, from wasteland savages to educated and skilled slaves with talents."')>></div> <div class="cc-flex-row"><span class="top-hud-chip"><img src="assets/icons/caps.png" class="top-hud-res-img" alt="Caps"> <<print CC.t("world.slave_market.caps", {}, "CAPS:")>> <strong><<print $player.Caps>></strong></span> <span class="top-hud-chip"><<print CC.icon("chain")>> <<print CC.t("world.slave_market.restraints", {}, "RESTRAINTS:")>> <strong><<print $player.Restraints>></strong> <<print CC.t("world.slave_market.pcs", {}, "pcs")>></span> <span class="top-hud-chip"><<print CC.icon("door")>> <<print CC.t("world.slave_market.cages", {}, "VACANT CAGES:")>> <strong><<print Math.max(0, CC.house.freeCage())>></strong></span> <span class="top-hud-chip"><<print CC.icon("users")>> <<print CC.t("world.slave_market.inhouse", {}, "IN BASEMENT:")>> <strong><<print CC.house.getSlaves().length>></strong></span></div> <<if !CC.house.converted()>> <div class="hud-alert cc-mb12"><<print CC.icon("warning")>> <<print CC.t("world.slave_market.noconvert", { n: CC.bal("house.convert_cost", 500) }, "Your shelter basement has not been refurbished yet! Purchased captives will wait in your escort until you set up the basement in your shelter (" + CC.bal("house.convert_cost", 500) + " caps in the housing menu).")>></div> <<elseif CC.house.freeCage() <= 0>> <div class="hud-alert cc-mb12"><<print CC.icon("warning")>> <<print CC.t("world.slave_market.nocage", { n: CC.bal("house.cage_cost", 400) }, "There are no vacant cages in your basement! Purchased captives will wait in your escort. Purchase an additional cage in your shelter (" + CC.bal("house.cage_cost", 400) + " caps) to house another captive.")>></div> <</if>> <<print CC.house.marketViewHtml("aegis")>> <<print CC.house.marketSellHtml("aegis")>> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="Aegis"><<print CC.t("world.aegis_slave.back", {}, "← Return to Aegis")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.bar.title", {}, "Severina's Bar")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/new hope/matriarch/matriarch.jpg" alt="Bar" class="big-image"> </div> <p><<print CC.t("world.bar.lead", {}, "Neutral territory of the outpost. It smells of strong moonshine, dried meat, and gunpowder soot. Caravaneers, mercenaries, and bounty hunters relax at the tables. Weapons at the door remain holstered Severina's guards show no mercy to brawlers.")>></p> <div class="choice-container"> <<if $player.severina_status == "unknown">> <a class="button hud-btn light-choice" data-passage="Dialogue_SeverinaTalk"><<print CC.t("world.bar.approach", {}, "Approach Bar Owner Severina")>></a> <<else>> <a class="button hud-btn light-choice" data-passage="Dialogue_SeverinaTalk"><<print CC.t("world.bar.talk", {}, "Talk to Severina")>></a> <</if>> <a class="button hud-btn dark-choice" data-passage="Bar_Rest"><<print CC.icon("energy")>> <<print CC.t("world.bar.rest", {}, "Sit at a Table & Rest")>></a> <a class="button hud-btn dark-choice" data-passage="Bar_Basement"><<print CC.icon("door")>> <<print CC.t("world.bar.cellar", {}, "Descend into the Cellar")>></a> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("world.back_camp", {}, "Return to Camp")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.bar_basement.title", {}, "Bar Cellar")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/new hope/matriarch/basement.jpg" alt="Bar cellar" class="big-image"> </div> <p><<print CC.t("world.bar_basement.lead", {}, "Damp stone, gnawed sacks, and a sour chitin stink. Something big rustles behind the barrels.")>></p> <div class="choice-container"> <<if CC.qe && CC.qe.stage("severina_roaches") == "active">> <a class="button hud-btn danger-choice" data-passage="Combat_Roach"><<print CC.icon("swords")>> <<print CC.t("world.bar_basement.fight", {}, "Confront the nest")>></a> <<elseif CC.qe && (CC.qe.stage("severina_roaches") == "killed" || CC.qe.stage("severina_roaches") == "done")>> <div class="cc-progress-badge"><<print CC.icon("check")>> <<print CC.t("world.bar_basement.cleared", {}, "Nest cleared.")>></div> <<else>> <div class="hud-alert"><<print CC.t("world.bar_basement.locked", {}, "Only Severina's business down here.")>></div> <</if>> <a class="button hud-btn back-btn" data-passage="Bar"><<print CC.t("world.bar_basement.back", {}, "Back upstairs")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.bar_rest.title", {}, "Severina's Bar Rest")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/new hope/matriarch/matriarch.jpg" alt="Bar" class="big-image"> </div> <<set _curDay to CC.day()>> <<set _alreadyRested to ($player.bar_rest_day === _curDay)>> <<set _alreadyCheckedEvent to ($player.bar_event_check_day === _curDay)>> <<set _eventTriggered to false>> <<if not _alreadyRested>> <<set $player.bar_rest_day to _curDay>> <<set _spGain to CC.bal("bar.rest_sp_gain", 10)>> <<set $player.stamina to Math.min($player.max_stamina || 100, ($player.stamina || 0) + _spGain)>> <p class="reward"><<print CC.t("world.bar_rest.rested", { n: _spGain }, "You order a glass of clean water and sit in the corner at a worn wooden table for a few minutes, catching your breath. <strong>(+" + _spGain + " SP)</strong>")>></p> <<else>> <p><<print CC.t("world.bar_rest.linger", {}, "You have already rested here today and caught your breath, but you can linger a bit longer amidst the bar's lively chatter.")>></p> <</if>> <<if not _alreadyCheckedEvent>> <<set $player.bar_event_check_day to _curDay>> <<set _roll to random(1, 100)>> <<if _roll <= CC.bal("bar.event_chance", 20)>> <<set _eventTriggered to true>> <</if>> <</if>> <<if _eventTriggered>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("kiss")>> <<print CC.t("world.bar_rest.notice", {}, "NOTICE")>></span> <p><<print CC.t("world.bar_rest.patron", {}, "A sturdy bar patron, flushed with alcohol, approaches your table with confident strides. Her gaze lingers over your physique, eyes gleaming with hunger...")>></p> </div> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Dialogue_BarGirl"><<print CC.icon("kiss")>> <<print CC.t("world.bar_rest.speak", {}, "Speak to the Girl")>></a> <a class="button hud-btn back-btn" data-passage="Bar"><<print CC.t("world.bar_rest.leave", {}, "Leave Table")>></a> </div> <<else>> <p class="cc-dim-small"><<print CC.t("world.bar_rest.calm", {}, "Caravaneers and mercenaries at neighboring tables argue loudly over ammo prices, clinking mugs and counting caps.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Bar"><<print CC.t("world.bar_rest.leave", {}, "Leave Table")>></a> </div> <</if>> </div>
<<if previous() === "Outside" or previous() === "MistralMansion">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/Location/bunker/bunker.jpg" alt="Bunker" class="big-image"> </div> <h2><<print CC.t("world.bunker.title", {}, "Abandoned Military Bunker")>></h2> <p><<print CC.t("world.bunker.lead", {}, "Massive titanium vault blast doors are sealed by Mistral's digital passcode.")>></p> <div class="choice-container"> <<if CC.flags.get("bunker_quest_progress") != "none" and CC.flags.get("bunker_quest_progress") != "Complete" and CC.flags.get("discovered_mistral_mansion")>> <<if CC.flags.get("bunker_quest_progress") == "END">> <a class="button hud-btn main-btn" data-passage="Baika"><<print CC.t("world.bunker.found", {}, "Code found! Return to Baika")>></a> <<else>> <a class="button hud-btn" data-passage="MistralMansion"><<print CC.t("world.bunker.mansion", {}, "Go to Mistral's mansion for the code")>></a> <</if>> <</if>> <<if CC.flags.get("bunker_quest_progress") == "Complete">> <a class="button hud-btn dark-choice" data-passage="Bunker_inside"><<print CC.t("world.bunker.enter", {}, "Enter code \"A2B4C977\" & Enter")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.bunker.back", {}, "Back")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.bunker_inside.title", {}, "Military Bunker: Internal Sector")>></h2> <div class="media-frame"> <img src="assets/Location/bunker/bunker.jpg" alt="Bunker" class="big-image"> </div> <<if CC.girls.status("selena") != "slave" and CC.girls.status("selena") != "ally">> <p><a class="button hud-btn dark-choice" data-passage="Bunker_selena"><<print CC.t("world.bunker_inside.selena", {}, "In the corner of the room sits a locked redhead woman")>></a></p> <</if>> <<if $bunker.loot_canned_food > 0>> <<print CC.gear.chipHtml("Canned_Food", CC.bal("loot.bunker_canned", 20))>> <<set _takeCap to CC.t("world.bunker_inside.take_food", {}, "Take military rations")>> <<link _takeCap "Bunker_inside">> <<set $player.Canned_Food += CC.bal("loot.bunker_canned", 20)>> <<set $bunker.loot_canned_food = 0>> <</link>> <</if>> <<if $bunker.loot_medkit > 0>> <<print CC.gear.chipHtml("Medkit", CC.bal("loot.bunker_medkit", 2))>> <<set _takeCap to CC.t("world.bunker_inside.take_med", {}, "Take field medkit")>> <<link _takeCap "Bunker_inside">> <<set $player.Medkit += CC.bal("loot.bunker_medkit", 2)>> <<set $bunker.loot_medkit = 0>> <</link>> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Bunker"><<print CC.t("world.bunker_inside.exit", {}, "Exit Bunker")>></a> </div> </div>
<<set _car = CC.caravan.state()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="damage"><<print CC.icon("swords")>> <<print CC.t("caravan.attack_confirm_title", {}, "ASSAULT THE CONVOY")>></h2> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("caravan.attack_confirm_warn", {}, "WARNING: HIGH RISK ENCOUNTER")>></span> <p><<print CC.t("caravan.attack_confirm_desc", { count: _car ? _car.guards_count : 2 }, "You are about to assault an official Aegis trade convoy guarded by " + (_car ? _car.guards_count : 2) + " heavily armed legionaries in Hastatus armor. Defeating them will let you seize what you can carry from their cargo, but failure is lethal.")>></p> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn danger-choice" data-passage="Combat_Caravan"><<print CC.icon("swords")>> <<print CC.t("caravan.attack_btn_charge", {}, "Attack the Guards!")>></a> <a class="button hud-btn back-btn" data-passage="Caravan_Interact">← <<print CC.t("caravan.attack_btn_cancel", {}, "Step Away")>></a> </div> </div>
<<set _car = CC.caravan.state()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("caravan.inspect_title", {}, "Aegis Trade Convoy")>><<print _car ? _car.archetype_name : "Aegis Caravan">></h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/egida_caravan.jpg" alt="Aegis Caravan" class="big-image"> </div> <p><<print CC.t("caravan.inspect_lead", {}, "Heavy armored wagons and pack beasts stand secured under the watchful eyes of Aegis legionaries clad in polished Hastatus armor.")>></p> <<if _car && _car.archetype_desc>> <p class="cc-dim-italic"><<print _car.archetype_desc>></p> <</if>> <div class="char-dossier-block cc-mt12"> <div class="char-dossier-stat"><span class="label"><<print CC.t("caravan.escort_label", {}, "Escort Force:")>></span> <span class="val"><<print CC.t("caravan.escort_desc", { count: _car ? _car.guards_count : 1 }, (_car ? _car.guards_count : 1) + " Legionaries (Hastatus Armor, Gladius / Rifles)")>></span></div> <div class="char-dossier-stat"><span class="label"><<print CC.t("caravan.manifest_label", {}, "Status:")>></span> <span class="val"><<print _car && _car.travel_state === "arrived" ? CC.t("caravan.status_arrived", {}, "Stationed at New Hope") : CC.t("caravan.status_traveling", {}, "En route to New Hope")>> (Day <<print CC.caravan.step() + 1>>/<<print CC.caravan.totalDays()>>)</span></div> </div> <<if _car && _car.travel_state === "destroyed">> <p class="damage"><<print CC.icon("warning")>> <<print CC.t("caravan.destroyed_lead", {}, "Smashed carts and cold campfires. This convoy was already plundered nothing remains but tracks in the dust.")>></p> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-cc="caravanUI.back">← <<print CC.t("caravan.btn_return", {}, "Return to Location")>></a> </div> <<else>> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="Caravan_Trade"><<print CC.icon("cart")>> <<print CC.t("caravan.btn_trade", {}, "Trade with Caravan")>></a> <a class="button hud-btn danger-choice" data-passage="Caravan_Attack"><<print CC.icon("swords")>> <<print CC.t("caravan.btn_attack", {}, "Attack Caravan (Hostile)")>></a> <a class="button hud-btn back-btn" data-cc="caravanUI.back">← <<print CC.t("caravan.btn_return", {}, "Return to Location")>></a> </div> <</if>> </div>
<<set _loot = CC.caravan.claimLoot()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.icon("backpack")>> <<print CC.t("caravan.loot_title", {}, "Caravan Plundered")>></h2> <p><<print CC.t("caravan.loot_lead", {}, "The legionary escort has been overwhelmed. You break open the locked cargo crates and load what you can carry into your bag.")>></p> <div class="section-divider"><span><<print CC.t("caravan.loot_summary", {}, "Loot Obtained from Cargo:")>></span></div> <<if _loot && _loot.items && _loot.items.length>> <div class="loot-grid cc-flex-row"> <<for _i = 0; _i < _loot.items.length; _i++>> <<set _it = _loot.items[_i]>> <<if CC.gear && CC.gear.chipHtml>> <<print CC.gear.chipHtml(_it.id, _it.qty)>> <<else>> <span class="hud-tag"><<print _it.name || _it.id>> x<<print _it.qty>></span> <</if>> <</for>> </div> <<else>> <p class="cc-dim-italic"><<print CC.t("caravan.loot_empty", {}, "No additional cargo remained in the carts.")>></p> <</if>> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-cc="caravanUI.back"><<print CC.icon("check")>> <<print CC.t("caravan.btn_continue", {}, "Continue")>></a> </div> </div>
<<run CC.transient.set("cc_market_id", "caravan")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("caravan.trade_title", {}, "Aegis Caravan Market")>></h2> <p><<print CC.t("caravan.trade_lead", {}, "The convoy quartermaster examines your caps and goods with calculating eyes.")>></p> <div class="media-frame"> <img src="assets/Location/settlement/egida/egida_caravan.jpg" alt="Aegis Market" class="big-image"> </div> <<if CC.market2 && CC.market2.shopHtml>> <div id="shop-wrapper"> <<print CC.market2.shopHtml("caravan")>> </div> <</if>> <div class="choice-container cc-mt12"> <a class="button hud-btn back-btn" data-passage="Caravan_Interact">← <<print CC.t("caravan.trade_back", {}, "Leave Caravan")>></a> </div> </div>
<<set $player.current_location = "City_Center">> <<if previous() === "Outside">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.city_center.title", {}, "Central Avenue of the Ruins")>></h2> <p><<print CC.t("world.city_center.lead", {}, "Skeletons of skyscrapers with shattered glass panes. This is the hunting ground of armed gangs, bounty hunters, and slave traders.")>></p> <<if !CC.flags.get("discovered_dominika") or CC.girls.status("dominika") == "unknown">> <<run CC.flags.set("discovered_dominika", true)>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("world.city_center.ambush", {}, "AMBUSH: HOSTILE CONTACT")>></span> <p><<print CC.t("world.city_center.ambush_text", {}, "A woman in leather armor brandishing a carbine leaps from a crumpled bus!")>></p> <a class="button hud-btn danger-choice" data-passage="Dominika_Encounter"><<print CC.t("world.city_center.accept", {}, "Accept Challenge")>></a> </div> <<elseif $dominika_betrayed and $player.days_survived >= ($dominika_betray_day + CC.bal("enemies.dominika.rematch_days", 7)) and random(1, 100) <= CC.bal("enemies.dominika.rematch_ch", 25)>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("world.city_center.return", {}, "AMBUSH: DOMINIKA'S RETURN!")>></span> <p><<print CC.t("world.city_center.return_text", {}, "A familiar haughty laugh echoes from a second-story window! Dominika takes aim with a pristine 9mm pistol: \"Miss me, sweetheart?! I came back to take the rest of your supplies!\"")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Dominika_Rematch"><<print CC.icon("swords")>> <<print CC.t("world.city_center.rematch", {}, "Accept Rematch!")>></a> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.city_center.flee", {}, "Try to escape into an alley")>></a> </div> </div> <<else>> <<set _ruinsCount = CC.world.ruinsRaidersCount()>> <<if _ruinsCount <= 0>> <p class="cc-dim-italic"><<print CC.t("world.city_center.cleared", {}, "The sector has been swept clean. No signs of raiders remain for now.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.city_center.back", {}, "Fall back to outskirts")>></a> </div> <<else>> <p class="cc-dim-italic"><<print CC.t("world.city_center.tracks", {}, "Fresh boot tracks and campfire ash among the debris indicate armed scavengers lurking in the ruins.")>></p> <<set _encounterRoll = random(1, 100)>> <div class="choice-container"> <<if _encounterRoll > CC.bal("city_roll", 60)>> <a class="button hud-btn danger-choice" data-passage="Raider_Encounter"><<print CC.icon("warning")>> <<print CC.t("world.city_center.raider", {}, "Raider spotted ahead!")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.city_center.back", {}, "Fall back to outskirts")>></a> </div> <</if>> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("quests.title", {}, "SETTLEMENT CONTRACTS")>></h2> <<set _rw to CC.qe.takeReward()>> <<if _rw>> <<print CC.qe.rewardHtml(_rw)>> <</if>> <<set _live to CC.qe.liveContracts("Commander Valerie")>> <<if !_live.length>> <div class="trade-table"><div class="item-row"><span class="item-name item-empty"><<print CC.t("quests.empty", {}, "No active settlement contracts right now. Check back later Valerie posts new ones regularly.")>></span></div></div> <<else>> <<print CC.qeUI.cardHtml("Commander Valerie")>> <</if>> <div class="choice-container contracts-nav"> <a class="button hud-btn back-btn" data-passage="Administration"><<print CC.t("quests.back", {}, "← Back to Administration")>></a> </div> </div>
<<set $player.current_location = "DarkForest">>\ <<if previous(1) !== "DarkForest">> <<run CC.hunt.reset()>> <</if>>\ <<if previous(1) === "Main_Road">> <<run CC.world.payTravel()>> <</if>>\ <div class="terminal-card hunt-card hunt-dark">\ <div class="corner-tl"></div><div class="corner-tr"></div>\ <div class="corner-bl"></div><div class="corner-br"></div>\ <h2><<print CC.t("world.darkforest.title", {}, "Dark Forest")>></h2>\ <p class="hunt-sub"><<print CC.t("world.darkforest.sub", {}, "Only <strong>mutants</strong>: wolves drop <strong>hides</strong>, humanoids drop <strong>mutant skin</strong>. All hit hard.")>></p>\ <<print CC.hunt.heroHtml("assets/Location/hunt/black_forest.jpg", "Dark Forest")>>\ <div class="hunt-wallet">\ <span class="top-hud-chip"><<print CC.icon("energy")>> <<print CC.t("world.hunt.sp", {}, "SP")>> <strong><<print $player.stamina>></strong>/<<print $player.max_stamina>></span>\ <span class="top-hud-chip"><<print CC.icon("meat")>> <<print CC.t("world.hunt.meat", {}, "MEAT")>> <strong><<print $player.Raw_meat>></strong></span>\ <span class="top-hud-chip hunt-chip-hide"><<print CC.t("world.hunt.hides", {}, "HIDES")>> <strong><<print $player.Beast_hide || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-skin"><<print CC.t("world.hunt.skin", {}, "MUTANT SKIN")>> <strong><<print $player.Mutant_skin || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-wood"><<print CC.icon("forest")>> <<print CC.t("world.hunt.wood", {}, "WOOD")>> <strong><<print $player.Wood || 0>></strong></span>\ </div>\ <<print CC.hunt.gearLineHtml()>>\ <<print CC.hunt.encounterHtml(CC.transient.get("hunt_encounter"))>>\ <<print CC.hunt.resultHtml(CC.transient.get("hunt_result"))>>\ <<print CC.hunt.actionsHtml("dark", "Main_Road", CC.t("world.hunt.back_dark", {}, "To Highway"))>>\ </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.explore.title", {}, "Sector Reconnaissance")>></h2> <<run CC.world.payExplore()>> <<if !CC.flags.get("discovered_bunker")>> <<run CC.flags.set("discovered_bunker", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.bunker", {}, "OBJECT DISCOVERED: Sealed military comms bunker!")>></p> <<elseif !CC.flags.get("discovered_farm")>> <<run CC.flags.set("discovered_farm", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.farm", {}, "OBJECT DISCOVERED: Old agrofarm with hydroponics!")>></p> <<elseif !CC.flags.get("discovered_city_center")>> <<run CC.flags.set("discovered_city_center", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.city", {}, "OBJECT DISCOVERED: Perilous City Center!")>></p> <<elseif !CC.flags.get("discovered_settlement")>> <<run CC.flags.set("discovered_settlement", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.settlement", {}, "OBJECT DISCOVERED: Free wastelanders' settlement!")>></p> <<elseif !CC.flags.get("discovered_forest")>> <<run CC.flags.set("discovered_forest", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.darkforest", {}, "OBJECT DISCOVERED: Mutant nest in the Dark Forest!")>></p> <<elseif !CC.flags.get("discovered_main_road")>> <<run CC.flags.set("discovered_main_road", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.explore.road", {}, "OBJECT DISCOVERED: Main Road caravan route into the eastern wastes!")>></p> <<else>> <p><<print CC.t("world.explore.done", {}, "All landmarks within walking radius have already been charted on your map.")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.explore.back", {}, "Return")>></a> </div> </div>
<<if previous() === "Outside">> <<run CC.world.payTravel()>> <</if>> <<set $farm to CC.farm.state()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.farm.title", {}, "Agrofarm")>></h2> <div class="media-frame"> <<if $farm.rebuilt>> <img src="assets/Location/Agrofarm/Agrofarm_rebuild.jpg" alt="Rebuilt Farm" class="big-image"> <<else>> <img src="assets/Location/Agrofarm/Agrofarm.jpg" alt="Agrofarm" class="big-image"> <</if>> </div> <<if $farm.questActive and not $farm.done>> <div class="hazard-notice"><span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("world.farm.quest", {}, "QUEST")>></span> <p><<print CC.t("world.farm.quest_text", {}, "Rebuild the agrofarm to prepare for the assault on the Red Band base.")>></p></div> <</if>> <<if (CC.day() >= CC.bal("events.alex_min_day", 30)) and (CC.girls.status("alex") === "unknown" or (CC.flags.get("alex_abandoned_day") and CC.girls.status("alex") !== "dead" and CC.girls.status("alex") !== "ally" and CC.girls.status("alex") !== "slave"))>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("world.farm.notice", {}, "NOTICE")>></span> <p><<print CC.t("world.farm.hangar", {}, "From the shattered hangar near the silo drifts the stench of fresh blood and faint groaning...")>></p> </div> <div class="choice-container cc-mb12"> <a class="button hud-btn danger-choice" data-passage="Alex_Event"><<print CC.icon("warning")>> <<print CC.t("world.farm.search", {}, "Search the ruined hangar")>></a> </div> <</if>> <p><<print CC.farm.desc()>></p> <<if $farm.done>> <p class="reward"><<print CC.t("world.farm.full", {}, "The farm is operating at full capacity: greenhouses yield crops, and the field is tilled.")>></p> <<elseif $farm.questActive>> <p><strong><<print CC.t("world.farm.recon_t", {}, "Reconstruction:")>></strong> <<print CC.t("world.farm.recon", { lvl: $farm.lvl, max: $farm.maxLvl, caps: $farm.caps, sp: $farm.sp }, "level " + $farm.lvl + "/" + $farm.maxLvl + ". Cost: " + $farm.caps + " caps + " + $farm.sp + " SP per level.")>></p> <<if not $farm.rebuilt>> <<if $player.Caps >= $farm.caps and $player.stamina >= $farm.sp>> <<set _rebuildCap to CC.t("world.farm.btn_rebuild", {}, "Rebuild (+1 level)")>> <<button _rebuildCap>> <<run CC.farm.rebuild()>> <<goto "Farm">> <</button>> <<else>> <div class="hud-alert"><<print CC.t("world.farm.need", { caps: $farm.caps, sp: $farm.sp }, "Need " + $farm.caps + " caps and " + $farm.sp + " SP to rebuild.")>></div> <</if>> <<else>> <p class="reward"><<print CC.t("world.farm.rebuilt", {}, "The agrofarm is fully reconstructed!")>></p> <p><strong><<print CC.t("world.farm.plow_t", {}, "Plowing field:")>></strong> <<print CC.t("world.farm.plow", { prog: $farm.prog, n: CC.bal("farm.plow_per_day", 5) }, "progress " + $farm.prog + "%. Each slave on the field +" + CC.bal("farm.plow_per_day", 5) + "%/day.")>></p> <<if $farm.prog < 100>> <<if $farm.assigned > 0>> <p><<print CC.t("world.farm.assigned", { n: $farm.assigned }, $farm.assigned + " slave(s) working on the field.")>></p> <<set _retrieveCap to CC.t("world.farm.btn_retrieve", {}, "Retrieve slaves from field")>> <<button _retrieveCap>> <<run CC.farm.retrieveSlaves()>> <<goto "Farm">> <</button>> <</if>> <<set _hasInvSlave to CC.house.getInvSlaves().length > 0>> <<if _hasInvSlave>> <<set _leaveCap to CC.t("world.farm.btn_leave", {}, "Leave slave on field")>> <<button _leaveCap>> <<run CC.farm.plowSlave()>> <<goto "Farm">> <</button>> <<elseif $farm.assigned === 0>> <div class="hud-alert"><<print CC.t("world.farm.require", {}, "Requires an escorting slave.")>></div> <</if>> <<if $player.stamina >= $farm.sp>> <<set _workCap to CC.t("world.farm.btn_work", {}, "Work personally (+5%)")>> <<button _workCap>> <<run CC.farm.plowPlayer()>> <<goto "Farm">> <</button>> <<else>> <div class="hud-alert"><<print CC.t("world.farm.need_sp", { n: $farm.sp }, "Need " + $farm.sp + " SP to work.")>></div> <</if>> <<else>> <p class="reward"><<print CC.t("world.farm.plowed", {}, "The field is fully plowed.")>></p> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Administration"><<print CC.t("world.farm.report", {}, "Turn in report to Valerie")>></a> </div> <</if>> <</if>> <<else>> <p class="cc-dim-italic"><<print CC.t("world.farm.promising", {}, "A promising location, but severely damaged and ruined. For now, only shattered greenhouses remain.")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.farm.back", {}, "← Back to Map")>></a> </div> </div>
<<set $player.current_location = "Forest">>\ <<if previous(1) !== "Forest">> <<run CC.hunt.reset()>> <</if>>\ <<if previous(1) === "Outside">> <<run CC.world.payTravel()>> <</if>>\ <div class="terminal-card hunt-card">\ <div class="corner-tl"></div><div class="corner-tr"></div>\ <div class="corner-bl"></div><div class="corner-br"></div>\ <h2><<print CC.t("world.forest.title", {}, "Wild Forest")>></h2>\ <p class="hunt-sub"><<print CC.t("world.forest.sub", {}, "Hares, deer, boars, and the occasional mutant rat.")>></p>\ <<print CC.hunt.heroHtml("assets/Location/hunt/wild_forest.jpg", "Wild Forest")>>\ <div class="hunt-wallet">\ <span class="top-hud-chip"><<print CC.icon("energy")>> <<print CC.t("world.hunt.sp", {}, "SP")>> <strong><<print $player.stamina>></strong>/<<print $player.max_stamina>></span>\ <span class="top-hud-chip"><<print CC.icon("meat")>> <<print CC.t("world.hunt.meat", {}, "MEAT")>> <strong><<print $player.Raw_meat>></strong></span>\ <span class="top-hud-chip hunt-chip-hide"><<print CC.t("world.hunt.hides", {}, "HIDES")>> <strong><<print $player.Beast_hide || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-wood"><<print CC.icon("forest")>> <<print CC.t("world.hunt.wood", {}, "WOOD")>> <strong><<print $player.Wood || 0>></strong></span>\ </div>\ <<print CC.hunt.gearLineHtml()>>\ <<print CC.hunt.encounterHtml(CC.transient.get("hunt_encounter"))>>\ <<print CC.hunt.resultHtml(CC.transient.get("hunt_result"))>>\ <<print CC.hunt.actionsHtml("wild", "Outside", CC.t("world.hunt.back_wild", {}, "Fall back to city"))>>\ </div>
<<if previous() !== "Williamson">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.magistral.title", {}, "Highway Trans-Regional Route")>></h2> <div class="media-frame"> <img src="assets/Location/transregional highway/transregional highway.png" alt="Highway" class="big-image"> </div> <p><<print CC.t("world.magistral.lead", {}, "An endless concrete strip cutting the wasteland in two. The shoulders are littered with vehicle skeletons, road signs are rusted and illegible, but through the dust, the sign <strong>WILLIAMSON 42 KM</strong> remains visible. The wind carries sand and the faint smell of distant smoke.")>></p> <p class="cc-dim-italic"><<print CC.t("world.magistral.reach", {}, "From here, you can reach Williamson")>></p> <<if CC.flags.get("discovered_williamson")>> <div class="section-divider"><span><<print CC.t("world.magistral.hubs", {}, "DISCOVERED HIGHWAY LOCATIONS")>></span></div> <div class="locations-grid"> <<set _travelCost = CC.world.travelCost()>> <<if CC.world.canTravel(_travelCost)>> <a class="location-btn location-hub" data-passage="Williamson"><<print CC.icon("city")>> Williamson <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.magistral.hub_tag", {}, "HUB")>></span></a> <<else>> <span class="location-btn location-hub cc-disabled"><<print CC.icon("city")>> Williamson <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.magistral.hub_tag", {}, "HUB")>></span> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> </div> <<if !CC.world.canTravel(_travelCost)>> <div class="hud-alert"><<print CC.icon("warning")>> <<print CC.t("world.magistral.short", { name: "Williamson", cost: _travelCost }, "Insufficient SP to travel to Williamson (" + _travelCost + " SP required).")>></div> <</if>> <</if>> <<if CC.flags.get("discovered_wasteland")>> <div class="section-divider"><span><<print CC.t("world.magistral.trails", {}, "WASTELAND TRAILS")>></span></div> <div class="locations-grid"> <<set _travelCost = CC.world.travelCost()>> <<if CC.world.canTravel(_travelCost)>> <a class="location-btn location-hub" data-passage="Wasteland"><<print CC.icon("road")>> Wasteland <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.magistral.hub_tag", {}, "HUB")>></span></a> <<else>> <span class="location-btn location-hub cc-disabled"><<print CC.icon("road")>> Wasteland <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.magistral.hub_tag", {}, "HUB")>></span> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> </div> <<if !CC.world.canTravel(_travelCost)>> <div class="hud-alert"><<print CC.icon("warning")>> <<print CC.t("world.magistral.short", { name: "Wasteland", cost: _travelCost }, "Insufficient SP to travel to the Wasteland (" + _travelCost + " SP required).")>></div> <</if>> <</if>> <<if CC.time && CC.time.isNight && !CC.time.isNight()>> <div class="section-divider"><span><<print CC.t("rep.statira_day_title", {}, "Statira's Roadside Stall")>></span></div> <p class="cc-dim-italic"><<print CC.t("rep.statira_day_lead", {}, "Ammo crates, oil smell, honest chalk prices. The ex-princip nods at you over the counter.")>></p> <div class="locations-grid"> <a class="location-btn" data-passage="Statira"><<print CC.icon("cart")>> <<print CC.t("world.magistral.statira_open", {}, "Roadside Trader (open till nightfall)")>></a> </div> <<else>> <p class="cc-dim-italic"><<print CC.icon("night")>> <<print CC.t("rep.statira_night", {}, "The stall is shuttered: crates covered with tarpaulin, lamp out. Statira trades from morning till nightfall only.")>></p> <</if>> <<if CC.caravan && CC.caravan.bannerHtml>> <<print CC.caravan.bannerHtml(passage())>> <</if>> <div class="choice-container"> <<set _scoutCost = CC.bal("costs.scout_sp", 20)>> <<if $player.stamina < _scoutCost>> <div class="hud-alert"><<print CC.t("world.magistral.exhausted", { n: _scoutCost }, "Exhausted! Need " + _scoutCost + " SP to scout the highway.")>></div> <<else>> <a class="button hud-btn light-choice" data-passage="Magistral_Explore"><<print CC.t("world.magistral.scout", { n: _scoutCost }, "Scout highway (-" + _scoutCost + " SP)")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Main_Road"><<print CC.t("world.magistral.back_road", {}, "← To Main Road")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.magistral_explore.title", {}, "Highway Reconnaissance")>></h2> <<run CC.world.payExplore()>> <<run CC.skills && CC.skills.addPlayerXp("surv", 1)>> <<if !CC.flags.get("discovered_williamson")>> <<run CC.flags.set("discovered_williamson", true)>> <<run CC.flags.set("discovered_aegis", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.magistral_explore.found", {}, "OBJECT DISCOVERED: Williamson suburban ruins on the horizon!")>></p> <p><<print CC.t("world.magistral_explore.panorama", {}, "Beyond the embankment opens a sweeping panorama: gray apartment towers encircled by the concrete belt of the old ring road. In the center of the ring, searchlights sweep and chimneys churn smoke the settlement of <strong>\"Aegis\"</strong>. A battered sign reading \"WELCOME TO WILLIAMSON\" lies half-buried in the ditch.")>></p> <p class="cc-dim-italic"><<print CC.t("world.magistral_explore.dev", {}, "Large settlement \"Aegis\" marked on map. Content in development passage currently accessible.")>></p> <<else>> <<set _foundCaps = random(1, 100) <= CC.bal("magistral.caps_ch", 45)>> <<set _foundMeat = random(1, 100) <= CC.bal("magistral.meat_ch", 30)>> <<if _foundCaps>> <<set _rawCaps = random(CC.bal("magistral.caps_min", 15), CC.bal("magistral.caps_max", 40))>> <<set _capsRes = (CC.gear && CC.gear.calcFoundCaps) ? CC.gear.calcFoundCaps(_rawCaps) : { total: _rawCaps, text: String(_rawCaps) }>> <<set $player.Caps += _capsRes.total>> <p class="reward"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> <<print CC.t("world.magistral_explore.loot_caps", { n: _capsRes.text }, "Courier bag found on the roadside: +" + _capsRes.text + " caps!")>></p> <</if>> <<if _foundMeat>> <<set $player.Raw_meat += CC.bal("magistral.meat_qty", 2)>> <p class="reward"><<print CC.gear.img("Raw_meat", "chip-icon", "item-frame-loot")>> <<print CC.t("world.magistral_explore.loot_meat", { n: CC.bal("magistral.meat_qty", 2) }, "Shot a stray mutant near the barrier: +" + CC.bal("magistral.meat_qty", 2) + " raw meat!")>></p> <</if>> <<if !_foundCaps and !_foundMeat>> <p><<print CC.t("world.magistral_explore.empty", {}, "The highway is deserted only the wind drives sand between the husks of stranded trucks.")>></p> <</if>> <</if>> <div class="choice-container"> <<if CC.flags.get("discovered_williamson")>> <a class="button hud-btn" data-passage="Williamson"><<print CC.icon("city")>> <<print CC.t("world.magistral_explore.travel", {}, "Travel to Williamson")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Magistral"><<print CC.t("world.magistral_explore.back_h", {}, "← To Highway")>></a> <a class="button hud-btn back-btn" data-passage="Main_Road"><<print CC.t("world.magistral_explore.back_road", {}, "← To Main Road")>></a> </div> </div>
<<if !["Magistral", "DarkForest", "Raider_Camp", "Raider_Camp_Retreat"].includes(previous())>> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.main_road.title", {}, "Main Road (Caravan Route)")>></h2> <p><<print CC.t("world.main_road.lead", {}, "A wide pre-war highway cracked and baked in sun dust, marked by the heavy wheel ruts of merchant caravans. This artery connects the city sectors with the eastern wastes.")>></p> <p class="hunt-sub"><<print CC.t("world.main_road.sub", {}, "In the distance, vigilant merchant caravans pass under mercenary escort. From the shoulder, faint trails wind into the jagged rocks.")>></p> <<if CC.terra && CC.terra.checkEncounter()>> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("world.main_road.terra_ambush_title", {}, "AMBUSH: RED BAND SLAVER CONVOY!")>></span> <p><<print CC.t("world.main_road.terra_ambush_text", {}, "Ahead on the highway you spot a six-person column: three armed Red Band raiders hauling plunder to their base, dragging 3 young girls behind them on chains.")>></p> <div class="choice-container cc-mt12"> <a class="button hud-btn danger-choice" data-passage="Terra_Raiders_Fight"><<print CC.icon("swords")>> <<print CC.t("world.main_road.terra_fight", {}, "Attack the Convoy!")>></a> <a class="button hud-btn" data-passage="Terra_Raiders_Ignore"><<print CC.icon("eye")>> <<print CC.t("world.main_road.terra_ignore", {}, "Ignore")>></a> </div> </div> <</if>> <<if CC.flags.get("discovered_raider_camp") or CC.flags.get("discovered_dark_forest") or CC.flags.get("discovered_magistral")>> <div class="section-divider"><span><<print CC.t("world.main_road.sectors", {}, "SCOUTED ROUTE SECTORS")>></span></div> <div class="locations-grid"> <<set _travelCost = CC.world.travelCost()>> <<set _canTravel = CC.world.canTravel(_travelCost)>> <<if CC.flags.get("discovered_raider_camp")>> <<if _canTravel>> <a class="location-btn danger-choice" data-passage="Raider_Camp"><<print CC.icon("swords")>> <<print CC.t("world.main_road.camp", {}, "Red Band Clan Camp")>></a> <<else>> <span class="location-btn danger-choice cc-disabled"><<print CC.icon("swords")>> <<print CC.t("world.main_road.camp", {}, "Red Band Clan Camp")>> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> <</if>> <<if CC.flags.get("discovered_dark_forest")>> <<if _canTravel>> <a class="location-btn danger-choice" data-passage="DarkForest"><<print CC.icon("forest")>> <<print CC.t("world.main_road.darkforest", {}, "Dark Forest")>></a> <<else>> <span class="location-btn danger-choice cc-disabled"><<print CC.icon("forest")>> <<print CC.t("world.main_road.darkforest", {}, "Dark Forest")>> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> <</if>> <<if CC.flags.get("discovered_magistral")>> <<if _canTravel>> <a class="location-btn location-hub" data-passage="Magistral"><<print CC.icon("road")>> <<print CC.t("world.main_road.highway", {}, "Highway")>> <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.main_road.hub_tag", {}, "HUB")>></span></a> <<else>> <span class="location-btn location-hub cc-disabled"><<print CC.icon("road")>> <<print CC.t("world.main_road.highway", {}, "Highway")>> <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.main_road.hub_tag", {}, "HUB")>></span> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> <</if>> </div> <<if !_canTravel>> <div class="hud-alert"><<print CC.icon("warning")>> <<print CC.t("world.main_road.short", { cost: _travelCost }, "Insufficient SP to travel between route sectors (" + _travelCost + " SP required).")>></div> <</if>> <</if>> <<if CC.caravan && CC.caravan.bannerHtml>> <<print CC.caravan.bannerHtml(passage())>> <</if>> <div class="choice-container"> <<set _scoutCost = CC.bal("costs.scout_sp", 20)>> <<if $player.stamina < _scoutCost>> <div class="hud-alert"><<print CC.t("world.main_road.exhausted", { n: _scoutCost }, "Exhausted! Need " + _scoutCost + " SP to scout sectors along the route.")>></div> <<else>> <a class="button hud-btn light-choice" data-passage="Main_Road_Explore"><<print CC.t("world.main_road.scout", { n: _scoutCost }, "Scout route surroundings (-" + _scoutCost + " SP)")>></a> <</if>> <a class="button hud-btn" data-passage="Outside"><<print CC.t("world.main_road.back", {}, "← To City Perimeter")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.main_road_explore.title", {}, "Caravan Route Reconnaissance")>></h2> <<run CC.world.payExplore()>> <<run CC.skills && CC.skills.addPlayerXp("surv", 1)>> <<if !CC.flags.get("discovered_magistral")>> <<run CC.flags.set("discovered_magistral", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.main_road_explore.found_road", {}, "OBJECT DISCOVERED: Highway abandoned trans-regional interstate heading north!")>></p> <p><<print CC.t("world.main_road_explore.road_text", {}, "Beyond the embankment lies cracked concrete stretching across the wasteland to the horizon. Road signs are battered, but the direction toward <strong>Williamson</strong> remains readable.")>></p> <<elseif !CC.flags.get("discovered_raider_camp")>> <<run CC.flags.set("discovered_raider_camp", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.main_road_explore.found_camp", {}, "OBJECT DISCOVERED: Fortified camp of the all-female raider clan \"Red Bands\"!")>></p> <p><<print CC.t("world.main_road_explore.camp_text", {}, "On a hill across the ravine stand crude palisades reinforced with rusted sheet metal, watchtowers, and red cloth banners fluttering in the hot wind.")>></p> <<elseif !CC.flags.get("discovered_dark_forest")>> <<run CC.flags.set("discovered_dark_forest", true)>> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.main_road_explore.found_dark", {}, "OBJECT DISCOVERED: Dark Forest thicket of mutants beyond the rocks!")>></p> <p><<print CC.t("world.main_road_explore.dark_text", {}, "Between the crags lies a tar-black thicket. The stench of rot wafts from within, accompanied by howling and the heavy breathing of something massive.")>></p> <<else>> <<set _foundCaps = random(1, 100) <= CC.bal("road.caps_ch", 50)>> <<set _foundMeat = random(1, 100) <= CC.bal("road.meat_ch", 35)>> <<if _foundCaps>> <<set _rawCaps = random(CC.bal("road.caps_min", 15), CC.bal("road.caps_max", 45))>> <<set _capsRes = (CC.gear && CC.gear.calcFoundCaps) ? CC.gear.calcFoundCaps(_rawCaps) : { total: _rawCaps, text: String(_rawCaps) }>> <<set $player.Caps += _capsRes.total>> <p class="reward"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> <<print CC.t("world.main_road_explore.loot_caps", { n: _capsRes.text }, "Lost caravaneer pouch found on the roadside: +" + _capsRes.text + " caps!")>></p> <</if>> <<if _foundMeat>> <<set $player.Raw_meat += CC.bal("road.meat_qty", 2)>> <p class="reward"><<print CC.gear.img("Raw_meat", "chip-icon", "item-frame-loot")>> <<print CC.t("world.main_road_explore.loot_meat", { n: CC.bal("road.meat_qty", 2) }, "Shot a steppe rodent near the rocks: +" + CC.bal("road.meat_qty", 2) + " raw meat!")>></p> <</if>> <<if !_foundCaps and !_foundMeat>> <p><<print CC.t("world.main_road_explore.empty", {}, "The roadside is desolate. Nothing but wagon ruts and remnants of cold campfires.")>></p> <</if>> <</if>> <div class="choice-container"> <<if CC.flags.get("discovered_magistral")>> <a class="button hud-btn location-hub" data-passage="Magistral"><<print CC.icon("road")>> <<print CC.t("world.main_road_explore.go_road", {}, "Head to the Highway")>></a> <</if>> <<if CC.flags.get("discovered_raider_camp")>> <a class="button hud-btn danger-choice" data-passage="Raider_Camp"><<print CC.t("world.main_road_explore.go_camp", {}, "Approach Raider Camp")>></a> <</if>> <<if CC.flags.get("discovered_dark_forest")>> <a class="button hud-btn danger-choice" data-passage="DarkForest"><<print CC.t("world.main_road_explore.go_dark", {}, "Venture into the Dark Forest")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Main_Road"><<print CC.t("world.main_road_explore.back", {}, "← To Main Road")>></a> </div> </div>
<<run CC.transient.set("cc_market_id", "default")>> <<run CC.market2.drift()>> <<include "Market_Interface">>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.market.title", {}, "Wasteland Trading Terminal")>></h2> <div id="shop-wrapper"> <<print CC.market2.shopHtml()>> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("world.back_camp_arrow", {}, "← Return to Camp")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/maya/maya.png" alt="Maya" class="character-image"> </div> <h2><<print CC.t("dialogues.maya.hub.title", {}, "Maya (Slaver)")>></h2> <p><<print CC.t("dialogues.maya.hub.lead", {}, "A broad-shouldered woman with a slaver's belt across her chest leans against the wall, arms crossed, sizing up every passerby like potential goods.")>></p> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Dialogue_MayaTalk"><<print CC.icon("chat")>> <<print CC.t("dialogues.maya.hub.talk", {}, "Talk to Maya")>></a> <a class="button hud-btn back-btn" data-passage="Aegis_ResidentialDistrict"><<print CC.t("dialogues.maya.hub.back", {}, "Back")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.mistral_entered.title", {}, "Mansion Entrance Hall")>></h2> <div class="locations-grid"> <a class="location-btn" data-passage="Mistral_Living_room"><<print CC.t("world.mistral_entered.living", {}, "Living Room")>></a> <a class="location-btn" data-passage="Mistral_Door_Kitchen"><<print CC.t("world.mistral_entered.kitchen", {}, "Mansion Kitchen")>></a> <a class="location-btn" data-passage="Mistral_Basement"><<print CC.t("world.mistral_entered.cellar", {}, "Wine Cellar")>></a> <a class="location-btn" data-passage="Mistral_Stairs_2nd_floor"><<print CC.t("world.mistral_entered.stairs", {}, "Stairs to 2nd Floor")>></a> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MistralMansion"><<print CC.t("world.mistral_entered.exit", {}, "Exit Villa")>></a> </div> </div>
<<if previous() === "Outside">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/Location/mistral/mistral_living_room.jpg" alt="Mistral's Mansion" class="big-image"> </div> <h2>Vincent Mistral's Country Villa</h2> <p>The once-opulent palace of a local tycoon, now shrouded in cobwebs and mold.</p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="MistralEntered">Step Inside</a> <<if CC.flags.get("bunker_quest_progress") != "none">> <<set _travelCost = CC.world.travelCost()>> <<if CC.world.canTravel(_travelCost)>> <a class="button hud-btn" data-passage="Bunker">To Bunker Entrance</a> <<else>> <span class="button hud-btn cc-disabled" style="opacity:0.45;pointer-events:none;" title="<<print CC.t('world.insufficient_sp', {cost: _travelCost})>>">To Bunker Entrance [<<print _travelCost>> SP]</span> <</if>> <</if>> <a class="button hud-btn back-btn" data-passage="Outside">← Back to Wasteland</a> </div> </div>
<<set $player.current_location = "Mistral_Basement">> <<if $mistral.Mistral_Basement > 0>> <<goto "Zombie_Encounter">> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.mistral_basement.title", {}, "Mansion Cellar")>></h2> <p><<print CC.t("world.mistral_basement.lead", {}, "It is silent here. Nothing but empty bottles and smashed crates.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("world.mistral_basement.back", {}, "Back to Hall")>></a> </div> </div>
<<set $player.current_location = "Mistral_Door_Kitchen">> <<if $mistral.Mistral_Door_Kitchen > 0>> <<goto "Zombie_Encounter">> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.mistral_kitchen.title", {}, "Villa Kitchen")>></h2> <<if $mistral.Mistral_Door_Kitchen_loot > 0>> <<print CC.gear.chipHtml("Canned_Food", CC.bal("loot.kitchen_canned", 10))>> <<set _takeCap to CC.t("world.mistral_kitchen.take", {}, "Take elite canned preserves")>> <<link _takeCap "Mistral_Door_Kitchen">> <<set $player.Canned_Food += CC.bal("loot.kitchen_canned", 10)>> <<set $mistral.Mistral_Door_Kitchen_loot = 0>> <</link>> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("world.mistral_kitchen.back", {}, "Back to Hall")>></a> </div> </div>
<<set $player.current_location = "Mistral_Living_room">> <<if $mistral.Mistral_Living_room > 0>> <<goto "Scarbourg_Encounter">> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/Location/mistral/mistral_living_room.jpg" alt="Mistral's Living Room" class="big-image"> </div> <h2><<print CC.t("world.mistral_living.title", {}, "Mistral's Living Room")>></h2> <<if $mistral.Mistral_Living_room == 0>> <p class="reward"><<print CC.t("world.mistral_living.code", {}, "Scrawled across the mirror in dried blood is the bunker passcode: <strong>\"A2B4C977\"</strong>")>></p> <<if CC.flags.get("bunker_quest_progress") != "none" && CC.flags.get("bunker_quest_progress") != "END" && CC.flags.get("bunker_quest_progress") != "Complete">> <<run CC.flags.set("bunker_quest_progress", "END")>> <<run CC.qe && CC.qe.setStage("bunker", "END")>> <</if>> <<else>> <p><<print CC.t("world.mistral_living.corpse", {}, "The monster's corpse is still warm, but its massive bulk obstructs searching the room.")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("world.mistral_living.back", {}, "Back to Hall")>></a> </div> </div>
<<set $player.current_location = "Mistral_Stairs_2nd_floor">> <<if $mistral == null>> <<set $mistral = {}>> <</if>> <<if $mistral.Mistral_Stairs_2nd_floor === undefined || $mistral.Mistral_Stairs_2nd_floor > 2>> <<set $mistral.Mistral_Stairs_2nd_floor = 2>> <</if>> <<if $mistral.Mistral_2nd_floor_loot_medkit === undefined>> <<set $mistral.Mistral_2nd_floor_loot_medkit = 1>> <</if>> <<if $mistral.Mistral_2nd_floor_loot_caps === undefined>> <<set $mistral.Mistral_2nd_floor_loot_caps = 1>> <</if>> <<if $mistral.Mistral_Stairs_2nd_floor > 0>> <<goto "Zombie_Encounter">> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.mistral_floor2.title", {}, "Mansion Second Floor")>></h2> <div class="media-frame"> <img src="assets/Location/mistral/badroom.jpg" alt="Mansion Second Floor" class="big-image"> </div> <p><<print CC.t("world.mistral_floor2.lead", {}, "The spacious bedroom chambers of tycoon Mistral. Once luxurious silk curtains hang in tatters, antique furniture is smashed to splinters, and remnants of pre-war opulence lie strewn across the broken glass.")>></p> <<if $mistral.Mistral_2nd_floor_loot_medkit > 0>> <<print CC.gear.chipHtml("Medkit", CC.bal("loot.mistral_floor2_medkit", 2))>> <<set _takeCap to CC.t("world.mistral_floor2.take_med", {}, "Take military medkits from personal safe")>> <<link _takeCap "Mistral_Stairs_2nd_floor">> <<set $player.Medkit += CC.bal("loot.mistral_floor2_medkit", 2)>> <<set $mistral.Mistral_2nd_floor_loot_medkit = 0>> <</link>> <</if>> <<if $mistral.Mistral_2nd_floor_loot_caps > 0>> <<print CC.gear.chipHtml("Caps", CC.bal("loot.mistral_floor2_caps", 300))>> <<set _takeCap to CC.t("world.mistral_floor2.take_caps", {}, "Take bottle caps from tycoon's lockbox")>> <<link _takeCap "Mistral_Stairs_2nd_floor">> <<set $player.Caps += CC.bal("loot.mistral_floor2_caps", 300)>> <<set $mistral.Mistral_2nd_floor_loot_caps = 0>> <</link>> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("world.mistral_floor2.back", {}, "Back to Hall")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.title", {}, "Outer City Perimeter")>></h2> <p><<print CC.t("world.lead", {}, "Where will you head?")>></p> <div class="section-divider"><span><<print CC.t("world.map", {}, "MAP")>></span></div> <<CC_LocationsGrid>> <div class="choice-container"> <<set _exploreCost = CC.world.exploreCost()>> <<set _searchCost = CC.world.searchCost()>> <<if $player.stamina >= _searchCost>> <a class="button hud-btn" data-passage="Search_Result"><<print CC.t("world.search", {cost: _searchCost}, "Search")>></a> <<else>> <div class="hud-alert"><<print CC.t("world.search_short", {cost: _searchCost}, "Insufficient SP.")>></div> <</if>> <<if $player.stamina >= _exploreCost>> <a class="button hud-btn light-choice" data-passage="Explore_Area"><<print CC.t("world.scout", {cost: _exploreCost}, "Scout")>></a> <<else>> <div class="hud-alert"><<print CC.t("world.scout_short", {cost: _exploreCost}, "Insufficient SP.")>></div> <</if>> <a class="button hud-btn back-btn" data-passage="House_Life">← <<print CC.t("world.back", {}, "Return")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.icon("shield")>> <<print CC.t("caravan_quest.title", {}, "Caravan Escort to New Hope")>></h2> <div class="media-frame"> <img src="assets/Location/settlement/egida/egida_caravan.jpg" alt="Aegis Caravan Escort" class="big-image"> </div> <<print CC.caravanQuest.renderEscortHtml()>> </div>
<<if previous() === "Main_Road">> <<run CC.world.payTravel()>> <</if>> <<run CC.transient.set("combat_return_passage", "Raider_Camp")>> <<set _curDay = (CC.day ? CC.day() : 1)>> <<set _patrolDown = (CC.flags ? CC.flags.get("raider_patrol_down_day", 0) : 0) === _curDay>> <<if !_patrolDown>> <<set _ambushRoll = Math.random() * 100>> <<set _enterAmbush = _ambushRoll < CC.bal("raider_camp.enter_ambush_chance", 50)>> <<else>> <<set _enterAmbush = false>> <</if>> <<if _enterAmbush>> <<run CC.flags && CC.flags.set("raider_patrol_down_day", _curDay)>> <</if>> <<run CC.transient.set("raider_camp_cleared", false)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.raider_camp.title", {}, "Red Band Clan Camp")>></h2> <<if _enterAmbush>> <<set _sentryAge = random(CC.bal("gen.raider_age_min", 18), CC.bal("gen.raider_age_max", 43))>> <<run CC.transient.set("encounter_raider_age", _sentryAge)>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.raider_camp.ambush", {}, "SUDDEN ATTACK! SPOTTED BY A RAIDER PATROL!")>></div> <div class="media-frame"> <img src="assets/NPC/Raider/Red Bandages.png" alt="Red Band Raider" class="character-image"> </div> <p><<print CC.t("world.raider_camp.ambush_lead", {}, "Just as you approached the outer perimeter at the foot of the cliffs, an armed sentry of the Red Band clan leaped from the brush!")>></p> <p><<print CC.t("world.raider_camp.ambush_cry", {}, "\"Intruder on the trail! Kill him!\" she howls furiously, raising her weapon!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Red_Raider"><<print CC.icon("energy")>> <<print CC.t("world.raider_camp.fight", {}, "Engage the raider in combat!")>></a> <a class="button hud-btn back-btn" data-passage="Raider_Camp_Retreat"><<print CC.t("world.raider_camp.retreat", {}, "← Try to retreat to the Main Road")>></a> </div> <<else>> <div class="media-frame"> <img src="assets/Location/transregional highway/red camp.jpg" alt="Red Band Clan Camp" class="big-image"> </div> <p><<print CC.t("world.raider_camp.lead", {}, "A fortified redoubt of the female raider gang, erected at the foot of the bluffs. The perimeter is surrounded by a palisade of sharpened logs laced with rusted razor wire. Faded red kerchiefs and skulls of their victims hang above the gates.")>></p> <p><<print CC.t("world.raider_camp.lead2", {}, "On crude timber watchtowers, archers keep vigil with drawn bowstrings, while near the gates women in leather jackets with sawn-off shotguns huddle around burning oil drums. From deep within the camp comes the snarling of hounds and the muffled groans of captives inside an iron cage.")>></p> <<if CC.qe && CC.qe.stage("raiders_recon") == "active">> <<set _stgMax = CC.bal("raiders_recon.stages_required", 4)>> <<set _stgCur = $raiders_recon_count || 0>> <div class="hud-alert danger-text"><<print CC.icon("eye")>> <<print CC.t("world.raider_camp.mission", { n: _stgCur, max: _stgMax }, "Valerie's Mission: Full reconnaissance of the camp required (progress: " + _stgCur + "/" + _stgMax + " stages). Charging the open gates is certain death.")>></div> <<elseif CC.qe && CC.qe.stage("raiders_recon") == "scouted">> <<set _stgMax = CC.bal("raiders_recon.stages_required", 4)>> <div class="hud-alert"><<print CC.icon("check")>> <<print CC.t("world.raider_camp.scouted", { n: _stgMax, max: _stgMax }, "Intelligence on garrison and fortifications gathered (" + _stgMax + "/" + _stgMax + "). Return with your report to Valerie.")>></div> <<elseif CC.qe && CC.qe.stage("raiders_recon") == "done">> <div class="hud-alert"><<print CC.t("world.raider_camp.done", {}, "Camp fully plotted on administration command map. Valerie's scouts are monitoring the sector.")>></div> <</if>> <<if _patrolDown>> <div class="hud-alert"><<print CC.icon("shield")>> <<print CC.t("world.raider_camp.patrol_down", {}, "The enemy patrol in this perimeter was eliminated today. It will only recover tomorrow.")>></div> <</if>> <div class="choice-container"> <<if CC.qe && CC.qe.stage("raiders_recon") == "active" && ($raiders_recon_count || 0) < CC.bal("raiders_recon.stages_required", 4)>> <<set _spCost = CC.bal("raiders_recon.sp_cost", 60)>> <<if $player.stamina < _spCost>> <div class="hud-alert"><<print CC.t("world.raider_camp.short", { n: _spCost }, "Exhausted! Need " + _spCost + " SP for thorough sector reconnaissance.")>></div> <<else>> <a class="button hud-btn light-choice" data-passage="Raider_Camp_Recon"><<print CC.icon("eye")>> <<print CC.t("world.raider_camp.scout", { n: _spCost, cur: ($raiders_recon_count || 0) + 1, max: CC.bal("raiders_recon.stages_required", 4) }, "Scout sector (-" + _spCost + " SP) [Stage " + (($raiders_recon_count || 0) + 1) + "/" + CC.bal("raiders_recon.stages_required", 4) + "]")>></a> <</if>> <</if>> <a class="button hud-btn back-btn" data-passage="Main_Road"><<print CC.t("world.raider_camp.back", {}, "← Fall back to Main Road")>></a> </div> <</if>> </div>
<<set $player.stamina = Math.max(0, $player.stamina - CC.bal("raiders_recon.sp_cost", 60))>> <<set _rReq = CC.bal("raiders_recon.stages_required", 4)>> <<if CC.qe.stage("raiders_recon") == "active" and ($raiders_recon_count || 0) < _rReq>> <<set $raiders_recon_count = ($raiders_recon_count || 0) + 1>> <</if>> <<if CC.qe.stage("raiders_recon") == "active" and ($raiders_recon_count || 0) >= _rReq>> <<run CC.qe.setStage("raiders_recon", "scouted")>> <</if>> <<run CC.skills && CC.skills.addPlayerXp("surv", 1)>> <<set _curDay = (CC.day ? CC.day() : 1)>> <<set _patrolDown = (CC.flags ? CC.flags.get("raider_patrol_down_day", 0) : 0) === _curDay>> <<if !_patrolDown>> <<set _ambushRoll = Math.random() * 100>> <<set _isAmbush = _ambushRoll < CC.bal("raiders_recon.ambush_chance", 50)>> <<else>> <<set _isAmbush = false>> <</if>> <<if _isAmbush>> <<run CC.flags && CC.flags.set("raider_patrol_down_day", _curDay)>> <</if>> <<run CC.transient.set("combat_return_passage", "Raider_Camp")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.raider_recon.title", { n: $raiders_recon_count, max: CC.bal("raiders_recon.stages_required", 4) }, "Reconnaissance of Red Band Camp [Stage " + $raiders_recon_count + "/" + CC.bal("raiders_recon.stages_required", 4) + "]")>></h2> <<if _isAmbush>> <<set _sentryAge = random(CC.bal("gen.raider_age_min", 18), CC.bal("gen.raider_age_max", 43))>> <<run CC.transient.set("encounter_raider_age", _sentryAge)>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.raider_recon.ambush", {}, "AMBUSH! SPOTTED BY AN ARMED RAIDER!")>></div> <div class="media-frame"> <img src="assets/NPC/Raider/Red Bandages.png" alt="Red Band Raider" class="character-image"> </div> <p><<print CC.t("world.raider_recon.ambush_lead", {}, "You were quietly observing the sector, noting down intel, when a dry twig snapped nearby. From behind a rock pile emerged a sentry with a red headband across her brow, weapon raised and ready!")>></p> <p><<print CC.t("world.raider_recon.ambush_cry", {}, "\"Freeze, rat! What are you gaping at?!\" she growls, spotting you. Nowhere to run you must fight!")>></p> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.raider_recon.noted", { n: $raiders_recon_count, max: CC.bal("raiders_recon.stages_required", 4) }, "Notes for this sector recorded (progress: " + $raiders_recon_count + "/" + CC.bal("raiders_recon.stages_required", 4) + ").")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Red_Raider"><<print CC.icon("energy")>> <<print CC.t("world.raider_recon.fight", {}, "Engage the raider in combat!")>></a> </div> <<else>> <div class="media-frame"> <img src="assets/Location/transregional highway/red camp.jpg" alt="Red Band Clan Camp" class="big-image"> </div> <<if _patrolDown>> <p class="reward"><<print CC.icon("shield")>> <<print CC.t("world.raider_recon.patrol_cleared", {}, "After the recent clash, the enemy patrol in this sector has been routed. The perimeter remains clear until tomorrow.")>></p> <</if>> <<if $raiders_recon_count == 1>> <p><strong><<print CC.t("world.raider_recon.s1t", {}, "Sector 1 (Northern perimeter and watchtowers):")>></strong></p> <p><<print CC.t("world.raider_recon.s1x", {}, "Crouching low, you carefully advance along a dry ravine and lie flat among thornbushes on a rocky rise. You chart the fields of fire of the wooden towers, blind spots between palisade sections, and the sentry rotation schedule on the outer wall.")>></p> <<elseif $raiders_recon_count == 2>> <p><strong><<print CC.t("world.raider_recon.s2t", {}, "Sector 2 (Supply depot and captive cage):")>></strong></p> <p><<print CC.t("world.raider_recon.s2x", {}, "Crawling toward the western trench, you survey the heart of the redoubt. In the center stands a heavy iron cage holding starved female captives women from seized caravans being prepared for sale. Nearby are cauldrons and firepits where the bulk of the gang congregates.")>></p> <<elseif $raiders_recon_count == 3>> <p><strong><<print CC.t("world.raider_recon.s3t", {}, "Sector 3 (Weapons arsenal and firing nests):")>></strong></p> <p><<print CC.t("world.raider_recon.s3x", {}, "Along the eastern bluff, you inspect the firing positions. The Red Band raiders possess noticeably superior hardware compared to common vagrants: pistols, hunting shotguns, and improvised leaf-spring spears.")>></p> <<else>> <p><strong><<print CC.t("world.raider_recon.s4t", {}, "Sector 4 (Command tent and assault paths):")>></strong></p> <p><<print CC.t("world.raider_recon.s4x", {}, "Final recon stage: you plot the warlord's tent, signal pyres, and the only viable path for a stealth approach through a cleft in the rocks onto the map. The tactical picture of the camp is now complete!")>></p> <</if>> <<if $raiders_recon_count >= CC.bal("raiders_recon.stages_required", 4)>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.raider_recon.done", { n: CC.bal("raiders_recon.stages_required", 4), max: CC.bal("raiders_recon.stages_required", 4) }, "Full reconnaissance (" + CC.bal("raiders_recon.stages_required", 4) + "/" + CC.bal("raiders_recon.stages_required", 4) + ") successfully completed! You have all necessary intel for Commander Valerie.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Raider_Camp"><<print CC.t("world.raider_recon.cover", {}, "Return to Cover")>></a> <<if CC.flags.get("discovered_settlement")>> <a class="button hud-btn light-choice" data-passage="Administration"><<print CC.t("world.raider_recon.admin", {}, "Quickly return to Administration")>></a> <</if>> </div> <<else>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.raider_recon.progress", { n: $raiders_recon_count, max: CC.bal("raiders_recon.stages_required", 4), left: CC.bal("raiders_recon.stages_required", 4) - $raiders_recon_count }, "Sector scouted (progress: " + $raiders_recon_count + "/" + CC.bal("raiders_recon.stages_required", 4) + "). " + (CC.bal("raiders_recon.stages_required", 4) - $raiders_recon_count) + " sectors remain to be surveyed.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Raider_Camp"><<print CC.t("world.raider_recon.cover", {}, "Return to Cover")>></a> </div> <</if>> <</if>> </div>
<<set _retreatRoll = Math.random() * 100>> <<set _failedRetreat = _retreatRoll < CC.bal("raider_camp.retreat_intercept_chance", 50)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.raider_retreat.title", {}, "Red Band Clan Camp")>></h2> <<if _failedRetreat>> <<run CC.flags && CC.flags.set("raider_patrol_down_day", CC.day ? CC.day() : 1)>> <<set _sentryAge = random(CC.bal("gen.raider_age_min", 18), CC.bal("gen.raider_age_max", 43))>> <<run CC.transient.set("encounter_raider_age", _sentryAge)>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.raider_retreat.intercepted", {}, "RETREAT INTERCEPTED! RAIDER CUTS OFF YOUR PATH!")>></div> <div class="media-frame"> <img src="assets/NPC/Raider/Red Bandages.png" alt="Red Band Raider" class="character-image"> </div> <p><<print CC.t("world.raider_retreat.fail_lead", {}, "You attempted a swift about-face down the gully toward the Main Road, but the lookout reacted instantly. Shrieking fiercely, she lunged ahead to block your retreat and leveled her weapon point-blank!")>></p> <p><<print CC.t("world.raider_retreat.fail_cry", {}, "\"Where do you think you're going, prey?! No one escapes the Red Bands free or alive!\" she snarled. Retreat failed you have to fight!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Red_Raider"><<print CC.icon("energy")>> <<print CC.t("world.raider_retreat.fail_go", {}, "Accept inevitable combat!")>></a> </div> <<else>> <div class="hud-alert"><<print CC.icon("check")>> <<print CC.t("world.raider_retreat.ok", {}, "YOU SUCCESSFULLY EVADED INTO THE SHADOW OF THE CLIFFS!")>></div> <p><<print CC.t("world.raider_retreat.ok_lead", {}, "Using the broken terrain and dense thickets to your advantage, you slipped into a rock crevice and broke line of sight. The raider lost track of you, cursing violently in the distance.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Main_Road"><<print CC.t("world.raider_retreat.ok_go", {}, "Reach the Main Road")>></a> </div> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.residential.title", {}, "Settlement Residential Sector")>></h2> <div class="locations-grid"> <a class="location-btn" data-passage="Baika"><<print CC.t("world.residential.workshop", {}, "Baika's Workshop")>></a> </div> <<if CC.qe.stage("supplies_unload") === "active">> <<set _qSupplies to CC.qe.qstate("supplies_unload")>> <<set _suppliesProg to _qSupplies ? (Number(_qSupplies.progress) || 0) : 0>> <<set _suppliesMax to CC.bal("quests.supplies_steps", 4)>> <<set _suppliesSp to CC.bal("quests.supplies_sp_cost", 25)>> <div class="hazard-notice" style="border-color: var(--cc-accent, #4fc3f7); margin: 15px 0;"> <span class="hazard-icon"><<print CC.icon("crate")>> <<print CC.t("world.residential.unload", {}, "UNLOADING SUPPLIES")>></span> <<if _suppliesProg < _suppliesMax>> <p><<print CC.t("world.residential.relief", { n: _suppliesProg, max: _suppliesMax }, "Relief crates for sector residents. Progress: <strong>" + _suppliesProg + " / " + _suppliesMax + "</strong>.")>></p> <<if $player.stamina >= _suppliesSp>> <<set _unloadBtn to CC.t("world.residential.unload_btn", { n: _suppliesSp }, "Unload supplies (-" + _suppliesSp + " SP)")>> <<button _unloadBtn>> <<run CC.qe.unloadSupplies()>> <<goto "ResidentialDistrict">> <</button>> <<else>> <p class="damage"><<print CC.icon("warning")>> <<print CC.t("world.residential.short", { n: _suppliesSp }, "Insufficient energy for work (need " + _suppliesSp + " SP).")>></p> <</if>> <<else>> <p style="color: var(--cc-phos, #39ff14);"><<print CC.icon("check")>> <<print CC.t("world.residential.done", {}, "All supplies unloaded! Report to Commander Valerie at the Administration.")>></p> <</if>> </div> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("world.residential.back", {}, "Back to Square")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.search_result.title", {}, "Scavenging Raid Report")>></h2> <<run CC.world.paySearch()>> <<run CC.skills && CC.skills.addPlayerXp("surv", 1)>> <<set _p = $player>> <<set _sLvl = (CC.skills && CC.skills.getLevel) ? CC.skills.getLevel(_p, "surv") : (Number(_p.skill_scav) || 0)>> <<set _eff = (CC.base && CC.base.workEfficiency) ? CC.base.workEfficiency(_p) : (1.0 + (_sLvl * (CC.bal ? CC.bal("base2.eff_per_scav_lvl", 0.05) : 0.05)))>> <<set _isDouble = (_sLvl >= 5 and (random(1, 100) <= CC.bal("skills.survival_lvl5_double_chance", 25)))>> <<set _foundFood = (random(1, 100) <= CC.bal("search.food_ch", 50) * _eff)>> <<set _foundMeds = (random(1, 100) <= CC.bal("search.meds_ch", 10) * _eff)>> <<set _foundCaps = (random(1, 100) <= CC.bal("search.caps_ch", 50) * _eff)>> <<if _isDouble and (_foundFood or _foundMeds or _foundCaps)>> <p class="reward"><<print CC.icon("star")>> <strong><<print CC.t("world.search_result.double_perk", {}, "Mastery Perk (Survival 5): Double Haul!")>></strong></p> <</if>> <<if _foundFood>> <<set _qty = random(CC.bal("search.food_qty_min", 1), CC.bal("search.food_qty_max", 3))>> <<if _isDouble>><<set _qty = _qty * 2>><</if>> <<set $player.Canned_Food += _qty>> <p class="reward"><<print CC.gear.img("Canned_Food", "chip-icon", "item-frame-loot")>> <<print CC.t("world.search_result.food", { n: _qty }, "Intact canned food discovered: +" + _qty + " pcs.")>></p> <</if>> <<if _foundMeds>> <<set _medQty = _isDouble ? 2 : 1>> <<set $player.Medkit += _medQty>> <<if _medQty > 1>> <p class="reward"><<print CC.gear.img("Medkit", "chip-icon", "item-frame-loot")>> <<print CC.t("world.search_result.medkit_x2", {}, "Found intact stimulants in a wall-mounted first aid kit (+2 Medkits)!")>></p> <<else>> <p class="reward"><<print CC.gear.img("Medkit", "chip-icon", "item-frame-loot")>> <<print CC.t("world.search_result.medkit", {}, "Found an intact stimulant in a wall-mounted first aid kit (+1 Medkit)!")>></p> <</if>> <</if>> <<if _foundCaps>> <<set _rawCaps = random(CC.bal("search.caps_min", 5), CC.bal("search.caps_max", 25))>> <<if _isDouble>><<set _rawCaps = _rawCaps * 2>><</if>> <<set _capsRes = (CC.gear && CC.gear.calcFoundCaps) ? CC.gear.calcFoundCaps(_rawCaps) : { total: _rawCaps, text: String(_rawCaps) }>> <<set $player.Caps += _capsRes.total>> <p class="reward"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> <<print CC.t("world.search_result.caps", { n: _capsRes.text }, "Stash inside the cash register: +" + _capsRes.text + " caps!")>></p> <</if>> <<if !_foundFood and !_foundMeds and !_foundCaps>> <p><<print CC.t("world.search_result.empty", {}, "Everything has been swept clean by other scavengers. Nothing but shattered concrete and glass.")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Outside"><<print CC.t("world.search_result.go", {}, "Continue Scavenging Run")>></a> </div> </div>
<<if previous() === "Outside">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/Location/settlement/new hope/new hope.png" alt="New Hope" class="big-image"> </div> <h2><<print CC.t("world.settlement.title", {}, "Fortified Settlement \"New Hope\"")>></h2> <p><<print CC.t("world.settlement.lead", {}, "Barricades of rusted shipping containers protect a small surviving community under the command of Praetor Valerie.")>></p> <<set _repHostile = CC.rep && CC.rep.isHostile && CC.rep.isHostile()>> <<if _repHostile>> <h3 class="damage"><<print CC.icon("warning")>> <<print CC.t("rep.gate_settlement_title", {}, "NEW HOPE GATES SHUT")>></h3> <p class="damage"><<print CC.t("rep.gate_lead", {}, "The gates are barred. Legionaries on the wall track you with levelled weapons the Senate bounty board carries your name after the caravan raid.")>></p> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("rep.gate_warn", {}, "WARNING: KILL-ON-SIGHT ORDER")>></span> <p><<print CC.t("rep.gate_patrol_desc", {}, "A five-woman gate patrol in scavenged leather and jackets blocks the approach, spears, rifles, pistols and crossbows ready.")>></p> </div> <div class="choice-container"> <<if CC.rep && CC.rep.gateFoughtToday && CC.rep.gateFoughtToday("settlement")>> <p class="cc-dim-italic"><<print CC.t("rep.gate_cooldown", {}, "The gate guard licks its wounds and stays behind the wall for today. The gates remain shut come back tomorrow, or settle the bounty.")>></p> <<else>> <a class="button hud-btn danger-choice" data-passage="Combat_SettlementGate"><<print CC.icon("swords")>> <<print CC.t("rep.gate_fight", { n: 5 }, "Fight the Gate Guard (5 Legionaries)")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("rep.gate_back_settlement", {}, "← Fall back to the Wastes")>></a> </div> <<else>> <div class="locations-grid"> <a class="location-btn" data-passage="Market"><<print CC.icon("cart")>> <<print CC.t("world.settlement.bazaar", {}, "Trade Bazaar")>></a> <a class="location-btn" data-passage="Slave_Market"><<print CC.icon("chain")>> <<print CC.t("world.settlement.slaves", {}, "Slave Market")>></a> <a class="location-btn" data-passage="Bar"><<print CC.icon("bar")>> <<print CC.t("world.settlement.bar", {}, "Severina's Bar")>></a> <a class="location-btn" data-passage="Administration"><<print CC.icon("admin")>> <<print CC.t("world.settlement.admin", {}, "Administration (Valerie)")>></a> <<if CC.girls.status("mary") == "ally" or CC.girls.status("mary") == "slave">> <span class="location-btn cc-disabled"><<print CC.icon("woman")>> <<print CC.t("world.settlement.mary_empty", {}, "Mary's Shack (No one is here.)")>></span> <<else>> <a class="location-btn" data-passage="Mary"><<print CC.icon("woman")>> <<print CC.t("world.settlement.mary", {}, "Prostitute Mary's Shack")>></a> <</if>> <<if CC.qe.stage("supplies_unload") === "active">> <a class="location-btn has-quest" data-passage="ResidentialDistrict"><<print CC.icon("district")>> <<print CC.t("world.settlement.district_q", {}, "Residential Sector")>> <span class="loc-quest-badge" title="Active Contract">!</span></a> <<else>> <a class="location-btn" data-passage="ResidentialDistrict"><<print CC.icon("district")>> <<print CC.t("world.settlement.district_q", {}, "Residential Sector")>></a> <</if>> </div> <<if CC.caravan && CC.caravan.bannerHtml>> <<print CC.caravan.bannerHtml(passage())>> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("world.settlement.exit", {}, "← Exit settlement gates")>></a> </div> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.slave_market.title", {}, "Settlement Slave Market")>></h2> <div class="media-frame"><img src="assets/NPC/griden/griden.png" alt="Slaver Griden" class="character-image"></div> <div class="dialogue-line"><span class="speaker-label">(Slaver Griden)</span> <<print CC.t("world.slave_market.griden", {}, '"Looking for labor or obedient flesh for your shelter? I have the finest stock in this wasteland. All collared, accustomed to irons. Take them now or tomorrow the caravans from Aegis will buy them up.."')>></div> <div class="cc-flex-row"><span class="top-hud-chip"><img src="assets/icons/caps.png" class="top-hud-res-img" alt="Caps"> <<print CC.t("world.slave_market.caps", {}, "CAPS:")>> <strong><<print $player.Caps>></strong></span> <span class="top-hud-chip"><<print CC.icon("chain")>> <<print CC.t("world.slave_market.restraints", {}, "RESTRAINTS:")>> <strong><<print $player.Restraints>></strong> <<print CC.t("world.slave_market.pcs", {}, "pcs")>></span> <span class="top-hud-chip"><<print CC.icon("door")>> <<print CC.t("world.slave_market.cages", {}, "VACANT CAGES:")>> <strong><<print Math.max(0, CC.house.freeCage())>></strong></span> <span class="top-hud-chip"><<print CC.icon("users")>> <<print CC.t("world.slave_market.inhouse", {}, "IN BASEMENT:")>> <strong><<print CC.house.getSlaves().length>></strong></span></div> <<if !CC.house.converted()>> <div class="hud-alert cc-mb12"><<print CC.icon("warning")>> <<print CC.t("world.slave_market.noconvert", { n: CC.bal("house.convert_cost", 500) }, "Your shelter basement has not been refurbished yet! Purchased captives will wait in your escort until you set up the basement in your shelter (" + CC.bal("house.convert_cost", 500) + " caps in the housing menu).")>></div> <<elseif CC.house.freeCage() <= 0>> <div class="hud-alert cc-mb12"><<print CC.icon("warning")>> <<print CC.t("world.slave_market.nocage", { n: CC.bal("house.cage_cost", 400) }, "There are no vacant cages in your basement! Purchased captives will wait in your escort. Purchase an additional cage in your shelter (" + CC.bal("house.cage_cost", 400) + " caps) to house another captive.")>></div> <</if>> <<print CC.house.marketViewHtml()>> <<print CC.house.marketSellHtml("settlement")>> <div class="choice-container cc-mt16"><a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("world.back_camp_arrow", {}, "← Return to Camp")>></a></div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_corridor.title", {}, "Research Station Main Corridor")>></h2> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland.jpg" alt="Station Corridor" class="big-image"> </div> <p><<print CC.t("world.station_corridor.lead", {}, "Flickering emergency indicators cast a pale, sterile glow over damp concrete walls and dangling power cables. Four heavy reinforced doors line the corridor, while the main passageway extends further into an observation station.")>></p> <div class="locations-grid"> <a class="location-btn" data-passage="Station_Meeting"> <<print CC.icon("users")>> <<print CC.t("world.station_corridor.meeting", {}, "Door 1: Meeting Room")>> <<if $station && $station.meeting_looted>> <span class="loc-hub-tag"><<print CC.icon("check")>> CLEARED</span> <<elseif $station && $station.meeting_cleared>> <span class="loc-cost-badge">UNLOOTED</span> <</if>> </a> <a class="location-btn" data-passage="Station_Radio"> <<print CC.icon("terminal")>> <<print CC.t("world.station_corridor.radio", {}, "Door 2: Radio Room")>> </a> <a class="location-btn" data-passage="Station_Lab"> <<print CC.icon("syringe")>> <<print CC.t("world.station_corridor.lab", {}, "Door 3: Laboratory")>> <<if $station && $station.lab_looted>> <span class="loc-hub-tag"><<print CC.icon("check")>> CLEARED</span> <<elseif $station && $station.lab_cleared>> <span class="loc-cost-badge">UNLOOTED</span> <</if>> </a> <a class="location-btn" data-passage="Station_Guard"> <<print CC.icon("shield")>> <<print CC.t("world.station_corridor.guard", {}, "Door 4: Guard Room")>> <<if $station && $station.guard_looted>> <span class="loc-hub-tag"><<print CC.icon("check")>> CLEARED</span> <<elseif $station && $station.guard_cleared>> <span class="loc-cost-badge">UNLOOTED</span> <</if>> </a> <a class="location-btn location-hub" data-passage="Station_Observation"> <<print CC.icon("eye")>> <<print CC.t("world.station_corridor.observation", {}, "Observation Post (End of Corridor)")>> <<if $station && $station.post_looted>> <span class="loc-hub-tag"><<print CC.icon("check")>> CLEARED</span> <<elseif $station && $station.post_cleared>> <span class="loc-cost-badge">UNLOOTED</span> <</if>> </a> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Entrance"><<print CC.t("world.station_corridor.exit", {}, "← Exit to Station Perimeter")>></a> </div> </div>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if $combat == null && (previous() == "Combat_Victory" || $station.entrance_cleared)>> <<set $station.entrance_cleared = true>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_entrance.title", {}, "Research Station Perimeter Entrance")>></h2> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland.jpg" alt="Research Station Entrance" class="big-image"> </div> <<if !$station || !$station.entrance_cleared>> <p class="damage"><<print CC.icon("warning")>> <<print CC.t("world.station_entrance.threat", {}, "A reinforced concrete bunker emerges from the rocky ravine. Two rotting undead in torn lab garments stand guard before the heavy steel blast doors, snarling as they catch your scent.")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Station_Entrance_Fight"><<print CC.icon("swords")>> <<print CC.t("world.station_entrance.fight", {}, "Attack the Station Guards (2 Zombies)")>></a> <a class="button hud-btn back-btn" data-passage="Wasteland"><<print CC.t("world.station_entrance.back", {}, "← Retreat to Wasteland")>></a> </div> <<else>> <p><<print CC.t("world.station_entrance.cleared", {}, "The entrance guards lie dead on the broken asphalt. The massive reinforced blast door has been forced open, revealing a dark, concrete corridor leading deep inside the research station.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Station_Corridor"><<print CC.icon("door")>> <<print CC.t("world.station_entrance.enter", {}, "Enter the Station Corridor")>></a> <a class="button hud-btn back-btn" data-passage="Wasteland"><<print CC.t("world.station_entrance.back", {}, "← Back to Wasteland")>></a> </div> <</if>> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "Station_Entrance")>> <<set $combat = CC.squadCombat.newFight(["zombie", "zombie"])>> <<goto "Combat_Enemy_Turn">>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if $combat == null && (previous() == "Combat_Victory" || $station.guard_cleared)>> <<set $station.guard_cleared = true>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_guard.title", {}, "Station Security Armory")>></h2> <<if !$station || !$station.guard_cleared>> <p class="damage"><<print CC.icon("warning")>> <<print CC.t("world.station_guard.threat", {}, "A fortified security checkpoint and weapons bay. Five reanimated station security guards in ragged tactical gear stumble among weapon racks, snarling aggressively!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Station_Guard_Fight"><<print CC.icon("swords")>> <<print CC.t("world.station_guard.fight", {}, "Attack Station Security (5 Zombies)")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_guard.back", {}, "← Retreat to Corridor")>></a> </div> <<elseif !$station.guard_looted>> <p><<print CC.t("world.station_guard.cleared", {}, "The former guards are slain. Behind a reinforced security cage you find an untouched tactical weapons arsenal and high-tier body armor.")>></p> <div class="choice-container"> <a class="button hud-btn reward-btn" data-passage="Station_Guard_Loot"><<print CC.icon("backpack")>> <<print CC.t("world.station_guard.loot_btn", {}, "Open the Armory Vault & Claim Weapons")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_guard.back", {}, "← Back to Corridor")>></a> </div> <<else>> <p><<print CC.t("world.station_guard.empty", {}, "The security bay has been completely scavenged. Weapon lockers and ammo crates stand wide open.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_guard.back", {}, "← Back to Corridor")>></a> </div> <</if>> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "Station_Guard")>> <<set $combat = CC.squadCombat.newFight(["zombie", "zombie", "zombie", "zombie", "zombie"])>> <<goto "Combat_Enemy_Turn">>
<<if !$station.guard_looted>> <<set $station.guard_looted = true>> <<set $player.AK47 = (Number($player.AK47) || 0) + CC.bal("station_loot.guard_ak47", 1)>> <<set $player.Ammo_AK = (Number($player.Ammo_AK) || 0) + CC.bal("station_loot.guard_ammo_ak_rounds", 150)>> <<set $player.Hunting_Shotgun = (Number($player.Hunting_Shotgun) || 0) + CC.bal("station_loot.guard_hunting_shotgun", 2)>> <<set $player.Ammo_Rifle = (Number($player.Ammo_Rifle) || 0) + CC.bal("station_loot.guard_ammo_rifle_rounds", 100)>> <<set $player.Pistol = (Number($player.Pistol) || 0) + CC.bal("station_loot.guard_pistol", 4)>> <<set $player.Ammo_9mm = (Number($player.Ammo_9mm) || 0) + CC.bal("station_loot.guard_ammo_9mm_rounds", 200)>> <<set $player.cloth_kevlar = (Number($player.cloth_kevlar) || 0) + CC.bal("station_loot.guard_cloth_kevlar", 1)>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("world.station_guard.loot_title", {}, "ARMORY CACHE UNLOCKED!")>></h2> <p><<print CC.t("world.station_guard.loot_lead", {}, "You break into the heavy armory lockers and retrieve a massive military arsenal:")>></p> <div class="armory-loot-grid"> <div class="armory-loot-card is-armor"> <div class="armory-loot-main"> <<print CC.gear.img("cloth_kevlar", "", "item-frame-loot")>> <div class="armory-loot-info"> <span class="armory-item-name"><<print CC.gear.labelFor("cloth_kevlar")>></span> <span class="armory-item-desc">-33% DAMAGE · -50% RANGED DMG</span> </div> </div> </div> <div class="armory-loot-card"> <div class="armory-loot-main"> <<print CC.gear.img("AK47", "", "item-frame-loot")>> <div class="armory-loot-info"> <span class="armory-item-name"><<print CC.gear.labelFor("AK47")>></span> <span class="armory-item-desc">MILITARY ASSAULT RIFLE</span> </div> </div> <div class="armory-loot-divider"></div> <div class="armory-loot-sub"> <<print CC.gear.img("Ammo_AK", "", "item-frame-loot")>> <div class="armory-sub-info"> <span class="armory-sub-name">×<<print CC.bal("station_loot.guard_ammo_ak_rounds", 150)>> 7.62MM AMMO</span> <span class="armory-pack-tag">(<<print CC.bal("station_loot.guard_ammo_ak_packs", 5)>> PACKS)</span> </div> </div> </div> <div class="armory-loot-card"> <div class="armory-loot-main"> <<print CC.gear.img("Hunting_Shotgun", "", "item-frame-loot")>> <div class="armory-loot-info"> <span class="armory-item-name">×<<print CC.bal("station_loot.guard_hunting_shotgun", 2)>> <<print CC.gear.labelFor("Hunting_Shotgun")>></span> <span class="armory-item-desc">DOUBLE-BARREL SHOTGUN</span> </div> </div> <div class="armory-loot-divider"></div> <div class="armory-loot-sub"> <<print CC.gear.img("Ammo_Rifle", "", "item-frame-loot")>> <div class="armory-sub-info"> <span class="armory-sub-name">×<<print CC.bal("station_loot.guard_ammo_rifle_rounds", 100)>> RIFLE AMMO</span> <span class="armory-pack-tag">(<<print CC.bal("station_loot.guard_ammo_rifle_packs", 10)>> PACKS)</span> </div> </div> </div> <div class="armory-loot-card"> <div class="armory-loot-main"> <<print CC.gear.img("Pistol", "", "item-frame-loot")>> <div class="armory-loot-info"> <span class="armory-item-name">×<<print CC.bal("station_loot.guard_pistol", 4)>> <<print CC.gear.labelFor("Pistol")>></span> <span class="armory-item-desc">TACTICAL SIDEARM</span> </div> </div> <div class="armory-loot-divider"></div> <div class="armory-loot-sub"> <<print CC.gear.img("Ammo_9mm", "", "item-frame-loot")>> <div class="armory-sub-info"> <span class="armory-sub-name">×<<print CC.bal("station_loot.guard_ammo_9mm_rounds", 200)>> 9MM AMMO</span> <span class="armory-pack-tag">(<<print CC.bal("station_loot.guard_ammo_9mm_packs", 10)>> PACKS)</span> </div> </div> </div> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_guard.back", {}, "← Back to Corridor")>></a> </div> </div>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if $combat == null && (previous() == "Combat_Victory" || $station.lab_cleared)>> <<set $station.lab_cleared = true>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_lab.title", {}, "Station Bio-Synthesis Laboratory")>></h2> <<if !$station || !$station.lab_cleared>> <div class="hud-alert danger-text" style="margin-bottom: 15px;"> <<print CC.icon("warning")>> <strong><<print CC.t("world.station_lab.alert", {}, "ALPHA MUTANT THREAT IN BIO-BAY!")>></strong> </div> <p class="damage"><<print CC.t("world.station_lab.threat", {}, "Inside the shattered glass research bay, TWO hulking seven-armed Barghufs tear apart chemical centrifuges! As you step through the threshold, both behemoths roar and charge!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Station_Lab_Fight"><<print CC.icon("energy")>> <<print CC.t("world.station_lab.fight", {}, "Fight the 2 Barghufs!")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_lab.back", {}, "← Retreat to Corridor")>></a> </div> <<elseif !$station.lab_looted>> <p><<print CC.t("world.station_lab.cleared", {}, "The mutant giants lie still in pools of dark mutagenic fluid. In a reinforced chemical safety locker that survived their rampage, you spot a cache of currency and technical documentation.")>></p> <div class="choice-container"> <a class="button hud-btn reward-btn" data-passage="Station_Lab_Loot"><<print CC.icon("backpack")>> <<print CC.t("world.station_lab.loot_btn", {}, "Loot the Lab Safe & Medical Blueprint")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_lab.back", {}, "← Back to Corridor")>></a> </div> <<else>> <p><<print CC.t("world.station_lab.empty", {}, "The synthesis laboratory is ruined. Test tubes are crushed, chemical lockers stand open and emptied.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_lab.back", {}, "← Back to Corridor")>></a> </div> <</if>> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "Station_Lab")>> <<set $combat = CC.squadCombat.newFight(["barghuf", "barghuf"])>> <<goto "Combat_Enemy_Turn">>
<<if !$station.lab_looted>> <<set $station.lab_looted = true>> <<set $player.Caps = (Number($player.Caps) || 0) + CC.bal("station_loot.lab_caps", 800)>> <<if CC.player>> <<run CC.player.add("Recipe_HB1", CC.bal("station_loot.lab_recipe_hb1", 1))>> <<else>> <<set $player.Recipe_HB1 = (Number($player.Recipe_HB1) || 0) + CC.bal("station_loot.lab_recipe_hb1", 1)>> <</if>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("world.station_lab.loot_title", {}, "RESEARCH DATA & CAPS RECOVERED!")>></h2> <p><<print CC.t("world.station_lab.loot_lead", {}, "Inside the intact laboratory bio-safe you find:")>></p> <div class="inv-armory-grid" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 15px;"> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Caps", CC.bal("station_loot.lab_caps", 800))>></span> </div> </div> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Recipe_HB1", CC.bal("station_loot.lab_recipe_hb1", 1))>></span> </div> <div class="inv-item-stats"> <span class="inv-stat-armor">HB1 STIMULANT BLUEPRINT</span> </div> </div> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_lab.back", {}, "← Back to Corridor")>></a> </div> </div>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if $combat == null && (previous() == "Combat_Victory" || $station.meeting_cleared)>> <<set $station.meeting_cleared = true>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_meeting.title", {}, "Station Meeting Room")>></h2> <<if !$station || !$station.meeting_cleared>> <p class="damage"><<print CC.icon("warning")>> <<print CC.t("world.station_meeting.threat", {}, "A large conference hall with shattered glass and upturned chairs. A horde of 5 ravenous zombies wanders among the briefing displays, hissing as you step inside!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Station_Meeting_Fight"><<print CC.icon("swords")>> <<print CC.t("world.station_meeting.fight", {}, "Attack the Zombie Group (5 Zombies)")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_meeting.back", {}, "← Retreat to Corridor")>></a> </div> <<elseif !$station.meeting_looted>> <p><<print CC.t("world.station_meeting.cleared", {}, "The undead have been neutralized. Amidst overturned desks and unlocked briefcases, you spot valuable supplies left behind during the evacuation.")>></p> <div class="choice-container"> <a class="button hud-btn reward-btn" data-passage="Station_Meeting_Loot"><<print CC.icon("backpack")>> <<print CC.t("world.station_meeting.loot_btn", {}, "Search the Room & Collect Supplies")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_meeting.back", {}, "← Back to Corridor")>></a> </div> <<else>> <p><<print CC.t("world.station_meeting.empty", {}, "The conference room is quiet. All corpses lie motionless, and all storage containers have already been cleared out.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_meeting.back", {}, "← Back to Corridor")>></a> </div> <</if>> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "Station_Meeting")>> <<set $combat = CC.squadCombat.newFight(["zombie", "zombie", "zombie", "zombie", "zombie"])>> <<goto "Combat_Enemy_Turn">>
<<if !$station.meeting_looted>> <<set $station.meeting_looted = true>> <<set $player.Caps = (Number($player.Caps) || 0) + CC.bal("station_loot.meeting_caps", 100)>> <<set $player.Medkit = (Number($player.Medkit) || 0) + CC.bal("station_loot.meeting_medkits", 2)>> <<if CC.player>> <<run CC.player.add("HB1", CC.bal("station_loot.meeting_hb1", 1))>> <<else>> <<set $player.HB1 = (Number($player.HB1) || 0) + CC.bal("station_loot.meeting_hb1", 1)>> <</if>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("world.station_meeting.loot_title", {}, "SUPPLIES RECOVERED!")>></h2> <p><<print CC.t("world.station_meeting.loot_lead", {}, "Searching through the executives' desks and medical emergency box yields:")>></p> <div class="inv-armory-grid" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 15px;"> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Caps", CC.bal("station_loot.meeting_caps", 100))>></span> </div> </div> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Medkit", CC.bal("station_loot.meeting_medkits", 2))>></span> </div> </div> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("HB1", CC.bal("station_loot.meeting_hb1", 1))>></span> </div> </div> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_meeting.back", {}, "← Back to Corridor")>></a> </div> </div>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if $combat == null && (previous() == "Combat_Victory" || $station.post_cleared)>> <<set $station.post_cleared = true>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_obs.title", {}, "Station Central Observation Post")>></h2> <<if !$station || !$station.post_cleared>> <div class="hud-alert danger-text" style="margin-bottom: 15px;"> <<print CC.icon("warning")>> <strong><<print CC.t("world.station_obs.alert", {}, "COMMAND DECK APEX MUTANT ENCOUNTER!")>></strong> </div> <p class="damage"><<print CC.t("world.station_obs.threat", {}, "At the end of the long reinforced hallway lies the central observation deck. Guarding the main computer terminal is a monstrous seven-armed Barghuf, stomping across shattered glass and surveying the ruins through heavy armored windows!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Station_Observation_Fight"><<print CC.icon("energy")>> <<print CC.t("world.station_obs.fight", {}, "Engage the Alpha Barghuf!")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_obs.back", {}, "← Retreat to Corridor")>></a> </div> <<elseif !$station.post_looted>> <p><<print CC.t("world.station_obs.cleared", {}, "The Barghuf crashes lifeless onto the steel flooring. The main commander's desk terminal and secure safe remain intact, with a sealed dossier resting beside medical kits.")>></p> <div class="choice-container"> <a class="button hud-btn reward-btn" data-passage="Station_Observation_Loot"><<print CC.icon("backpack")>> <<print CC.t("world.station_obs.loot_btn", {}, "Retrieve Station Dossier & Supplies")>></a> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_obs.back", {}, "← Back to Corridor")>></a> </div> <<else>> <p><<print CC.t("world.station_obs.empty", {}, "The observation post is clear. The Barghuf carcass remains in the corner, and the terminal disk drives have been completely retrieved.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_obs.back", {}, "← Back to Corridor")>></a> </div> <</if>> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "Station_Observation")>> <<set $combat = CC.squadCombat.newFight(["barghuf"])>> <<goto "Combat_Enemy_Turn">>
<<if !$station.post_looted>> <<set $station.post_looted = true>> <<set $player.Medkit = (Number($player.Medkit) || 0) + CC.bal("station_loot.post_medkits", 5)>> <<if CC.player>> <<run CC.player.add("Recipe_EB1", CC.bal("station_loot.post_recipe_eb1", 1))>> <<run CC.player.add("Report_ADAM0", CC.bal("station_loot.post_report_adam0", 1))>> <<else>> <<set $player.Recipe_EB1 = (Number($player.Recipe_EB1) || 0) + CC.bal("station_loot.post_recipe_eb1", 1)>> <<set $player.Report_ADAM0 = (Number($player.Report_ADAM0) || 0) + CC.bal("station_loot.post_report_adam0", 1)>> <</if>> <<if CC.qe && CC.qe.stage("maya_research_station") == "active">> <<run CC.qe.setStage("maya_research_station", "has_report")>> <</if>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("world.station_obs.loot_title", {}, "CLASSIFIED DATA & MEDICAL CACHE RECOVERED!")>></h2> <p><<print CC.t("world.station_obs.loot_lead", {}, "You secure the top-secret research dossier along with rare stimulant formulations and field medkits:")>></p> <div class="inv-armory-grid" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 15px;"> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Report_ADAM0", CC.bal("station_loot.post_report_adam0", 1))>></span> </div> <div class="inv-item-stats"> <span class="inv-stat-armor" style="color: #ffcc00;"><<print CC.icon("scroll")>> QUEST ITEM: REPORT ADAM 0</span> </div> </div> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Recipe_EB1", CC.bal("station_loot.post_recipe_eb1", 1))>></span> </div> <div class="inv-item-stats"> <span class="inv-stat-armor">EB1 ENERGY BLUEPRINT</span> </div> </div> <div class="inv-item-card is-equipped"> <div class="inv-item-top"> <span class="inv-item-name"><<print CC.gear.chipHtml("Medkit", CC.bal("station_loot.post_medkits", 5))>></span> </div> </div> </div> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.station_obs.quest_note", {}, "You have recovered the \"Report ADAM 0\"! Deliver it to Maya at Aegis Residential District.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_obs.back", {}, "← Back to Corridor")>></a> </div> </div>
<<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <<elseif $station.radio_freq === undefined>> <<set $station.radio_freq = 91.5>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.station_radio.title", {}, "Station Radio Communications Room")>></h2> <p><<print CC.t("world.station_radio.lead", {}, "An empty, dead-silent control room. In the center of the dust-covered console sits an intact military-grade wideband radio transceiver with illuminated analog gauges and tuning knobs.")>></p> <div class="hud-alert" style="background: rgba(10, 20, 30, 0.7); border: 1px solid rgba(80, 160, 240, 0.4); border-radius: 4px; padding: 15px; margin: 15px 0;"> <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid rgba(80, 160, 240, 0.2); padding-bottom: 8px;"> <strong style="color: #60c0ff; font-family: monospace; letter-spacing: 1px;"><<print CC.icon("terminal")>> HIGH-FREQUENCY TRANSCEIVER R-104M</strong> <span style="color: #00ffaa; font-family: monospace; font-size: 1.1em; background: rgba(0, 40, 20, 0.8); padding: 2px 8px; border: 1px solid #00aa66; border-radius: 3px;"> <<print $station.radio_freq.toFixed(1)>> MHz FM </span> </div> <div style="background: #050a10; border: 1px solid #1a3040; border-radius: 3px; padding: 10px; margin: 10px 0; font-family: monospace; color: #a0c0d0;"> <div style="margin-bottom: 6px;">SIGNAL STRENGTH: <span style="color: #557788;">[ ░░░░░░░░░░░░░░░░ ] 0 dB (NO CARRIER)</span></div> <div style="color: #e0e8f0; font-style: italic; line-height: 1.4;"> <<print CC.t("world.station_radio.static", {}, "«...shhh-khhh... solid white noise and the monotonous hiss of dead air... Nothing on this wave. Since you know no active frequencies or callsigns in the Wasteland, there is no point tuning the radio right now...»")>> </div> </div> <div style="display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 12px;"> <<button "◄◄ -5.0 MHz">> <<set $station.radio_freq = Math.max(87.5, Math.round(($station.radio_freq - 5.0) * 10) / 10)>> <<goto "Station_Radio">> <</button>> <<button "◄ -1.0 MHz">> <<set $station.radio_freq = Math.max(87.5, Math.round(($station.radio_freq - 1.0) * 10) / 10)>> <<goto "Station_Radio">> <</button>> <<button "‹ -0.1 MHz">> <<set $station.radio_freq = Math.max(87.5, Math.round(($station.radio_freq - 0.1) * 10) / 10)>> <<goto "Station_Radio">> <</button>> <<button "+0.1 MHz ›">> <<set $station.radio_freq = Math.min(108.0, Math.round(($station.radio_freq + 0.1) * 10) / 10)>> <<goto "Station_Radio">> <</button>> <<button "+1.0 MHz ►">> <<set $station.radio_freq = Math.min(108.0, Math.round(($station.radio_freq + 1.0) * 10) / 10)>> <<goto "Station_Radio">> <</button>> <<button "+5.0 MHz ►►">> <<set $station.radio_freq = Math.min(108.0, Math.round(($station.radio_freq + 5.0) * 10) / 10)>> <<goto "Station_Radio">> <</button>> </div> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Station_Corridor"><<print CC.t("world.station_radio.back", {}, "← Step Away to Corridor")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/statira/statira.png" alt="Statira" class="character-image"> </div> <h2><<print CC.t("dialogues.statira.hub.title", {}, "Statira (Road Trader)")>></h2> <p><<print CC.t("dialogues.statira.hub.lead", {}, "A broad-shouldered ex-officer tends a plank stall stacked with ammo crates and bandages. A faded Principes crest glints on her collar.")>></p> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Dialogue_StatiraTalk"><<print CC.icon("chat")>> <<print CC.t("dialogues.statira.hub.talk", {}, "Talk to Statira")>></a> <a class="button hud-btn main-btn" data-passage="Statira_Trade"><<print CC.icon("cart")>> <<print CC.t("dialogues.statira.hub.trade", {}, "Trade (ammo & meds)")>></a> <a class="button hud-btn back-btn" data-passage="Magistral"><<print CC.t("dialogues.statira.hub.back", {}, "Back to Highway")>></a> </div> </div>
<<run CC.transient.set("cc_market_id", "statira")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("rep.statira_trade_title", {}, "Statira Ammo & Meds")>></h2> <p><<print CC.t("rep.statira_trade_lead", {}, "She chalk-marks the price of every box without looking up. Powder, shot, bandages road currency.")>></p> <div class="media-frame"> <img src="assets/NPC/statira/statira.png" alt="Statira" class="character-image"> </div> <<if CC.market2 && CC.market2.shopHtml>> <div id="shop-wrapper"> <<print CC.market2.shopHtml("statira")>> </div> <</if>> <div class="choice-container" style="margin-top: 12px;"> <a class="button hud-btn back-btn" data-passage="Statira">← <<print CC.t("rep.statira_trade_back", {}, "Step away from the stall")>></a> </div> </div>
<<set $player.current_location = "Swamp_Hunt">>\ <<if previous(1) !== "Swamp_Hunt">> <<run CC.hunt.reset()>> <</if>>\ <<if previous(1) === "Wasteland">> <<run CC.world.payTravel()>> <</if>>\ <div class="terminal-card hunt-card hunt-dark">\ <div class="corner-tl"></div><div class="corner-tr"></div>\ <div class="corner-bl"></div><div class="corner-br"></div>\ <h2><<print CC.t("world.swamp_hunt.title", {}, "Contaminated Swamps")>></h2>\ <p class="hunt-sub"><<print CC.t("world.swamp_hunt.sub", {}, "Toxic wetlands crawling with apex mutants and dangerous predators: spitters, mire lurkers, spike harriers, and massive behemoths. High danger, lethal trophies.")>></p>\ <<print CC.hunt.heroHtml("assets/Location/wasteland/swamps.jpg", "Contaminated Swamps")>>\ <div class="hunt-wallet">\ <span class="top-hud-chip"><<print CC.icon("energy")>> <<print CC.t("world.hunt.sp", {}, "SP")>> <strong><<print $player.stamina>></strong>/<<print $player.max_stamina>></span>\ <span class="top-hud-chip"><<print CC.icon("meat")>> <<print CC.t("world.hunt.meat", {}, "MEAT")>> <strong><<print $player.Raw_meat>></strong></span>\ <span class="top-hud-chip hunt-chip-hide"><<print CC.t("world.hunt.hides", {}, "HIDES")>> <strong><<print $player.Beast_hide || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-skin"><<print CC.t("world.hunt.skin", {}, "MUTANT SKIN")>> <strong><<print $player.Mutant_skin || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-skin"><<print CC.t("world.hunt.spikes", {}, "SPIKES")>> <strong><<print $player.Bone_Spike || 0>></strong></span>\ <span class="top-hud-chip hunt-chip-skin"><<print CC.t("world.hunt.fangs", {}, "FANGS")>> <strong><<print $player.Behemoth_Fang || 0>></strong></span>\ </div>\ <<print CC.hunt.gearLineHtml()>>\ <<print CC.hunt.encounterHtml(CC.transient.get("hunt_encounter"))>>\ <<print CC.hunt.resultHtml(CC.transient.get("hunt_result"))>>\ <<print CC.hunt.actionsHtml("swamp", "Wasteland", CC.t("world.hunt.back_swamp", {}, "To Wasteland"))>>\ </div>
<<set $combat = CC.terra.startFight()>> <<goto "Combat_Enemy_Turn">>
<<run CC.terra.ignoreEncounter()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.terra_ignore.title", {}, "CONVOY IGNORED")>></h2> <p><<print CC.t("world.terra_ignore.lead", {}, "You duck low into the roadside culvert, holding your breath among sharp gravel and sunbaked dust.")>></p> <p><<print CC.t("world.terra_ignore.desc", {}, "Heavy raider boots tread past just yards away, accompanied by the cold clinking of slave irons and the muted sobs of the captives. The convoy carries their plunder north toward the Red Band stronghold, disappearing over the sun-bleached hills.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Main_Road"><<print CC.t("world.terra_ignore.back", {}, "← Return to Main Road")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/terra/terra.png" alt="Terra" class="character-image"> </div> <h2><<print CC.t("world.terra_rescue.title", {}, "THE CAPTIVE BEAUTY IN CHAINS")>></h2> <p><<print CC.t("world.terra_rescue.lead", {}, "Among the bodies of the slain raiders, a striking 25-year-old woman with raven-black hair kneels in the dust. A heavy iron collar encircles her slender neck, connected to a thick chain held in your grasp. She looks up at you with wide, tear-filled dark eyes, trembling with disbelief.")>></p> <div class="dialogue-line"> <span class="speaker-label">Terra</span> <div class="dialogue-speech-block"><<print CC.t("world.terra_rescue.dialogue_1", {}, '"You... you are a living man?! A real man... here in the wastes?! We thought you were all wiped out decades ago... I must be dreaming..."')>></div> <div class="dialogue-speech-block"><<print CC.t("world.terra_rescue.dialogue_2", {}, '"Please... please don\'t sell me to the flesh markets! Our entire settlement was burned to ash by these raiders... They slaughtered everyone and chained us like beasts to trade for caps. If you take me, I swear I will be a wonderful, obedient slave! I can cook hearty meals, survive in the wild, clean, obey every command... I will do anything you ask of me, Master! Just spare me from the market cages!"')>></div> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn danger-choice" data-passage="Terra_Rescue_Enslave"><<print CC.icon("chain")>> <<print CC.t("world.terra_rescue.enslave_opt", {}, "Take her as a slave")>></a> <a class="button hud-btn reward-btn" data-passage="Terra_Rescue_Free"><<print CC.icon("energy")>> <<print CC.t("world.terra_rescue.free_opt", {}, "Unlock her chains")>></a> </div> </div>
<<run CC.terra.recruit(true)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/terra/terra.png" alt="Terra" class="character-image"> </div> <h2><<print CC.t("world.terra_enslave.title", {}, "TERRA: SUBMISSION ACCEPTED")>></h2> <p><<print CC.t("world.terra_enslave.desc", {}, "You tighten your grip on the chain, pulling her gently upright. Her dark eyes tremble, but a wave of profound relief washes over her face upon realizing she won't be hauled to Griden's auction block.")>></p> <div class="dialogue-line"> <span class="speaker-label">Terra</span> <<print CC.t("world.terra_enslave.dialogue", {}, '"Thank you... Master! You didn\'t sell me... I am yours now. I will prepare your meals, keep the shelter warm, and surrender my body whenever you desire. Lead the way, Master..."')>> </div> <div class="hud-alert cc-mt12"> <<print CC.icon("warning")>> <<print CC.t("world.terra_enslave.status", {}, "Terra has joined your shelter as a Slave (Submission: 60, Trust: 30). Skills: Cooking 2, Survival 2, Strength 1, Endurance 1.")>> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="Main_Road"><<print CC.t("world.terra.return_road", {}, "Return to Main Road")>></a> </div> </div>
<<run CC.terra.recruit(false)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/terra/terra.png" alt="Terra" class="character-image"> </div> <h2><<print CC.t("world.terra_free.title", {}, "TERRA: CHAINS SHATTERED")>></h2> <p><<print CC.t("world.terra_free.desc", {}, "You take the heavy key from the dead raider's belt and insert it into her iron collar. With a sharp metallic click, the lock springs open, and the iron falls heavily into the dust.")>></p> <p><<print CC.t("world.terra_free.shock", {}, "Terra freezes in absolute, paralyzing shock. Her trembling hands touch her bare neck, unable to comprehend what just transpired.")>></p> <div class="dialogue-line"> <span class="speaker-label">Terra</span> <<print CC.t("world.terra_free.dialogue", {}, '"Y-you... unlocked my chains?! You\'re not selling me... and not keeping me in irons?! A living man who gives freedom instead of taking it... I can hardly breathe... My village is gone, but if you\'ll have me, I want to stand with you! I\'ll cook for our people, scout the wastes, and watch your back with my life!"')>> </div> <div class="hud-alert cc-mt12"> <<print CC.icon("energy")>> <<print CC.t("world.terra_free.status", {}, "Terra has joined your shelter as an Ally (Submission: 30, Trust: 80). Skills: Cooking 2, Survival 2, Strength 1, Endurance 1.")>> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn main-btn" data-passage="Main_Road"><<print CC.t("world.terra.return_road", {}, "Return to Main Road")>></a> </div> </div>
<<if !["Wasteland_Explore", "Combat_Wasteland", "Waymeet", "Waymeet_Market", "Waymeet_Quarters", "Station_Entrance", "Swamp_Hunt"].includes(previous())>> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.wasteland.title", {}, "Wasteland")>></h2> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland.jpg" alt="Wasteland" class="big-image"> </div> <p><<print CC.t("world.wasteland.lead", {}, "Despite the name, the Wasteland breathes. Dry grass bends under a mild wind, the climate is almost gentle, and somewhere beyond the ravines smoke rises from campfires. Feral runaways from wild tribes hide here, lone free women wander between water holes and Aegis slaver posses patrol the trails. Raiders are few: there is little worth stealing, which makes these lands almost safer than the highway. Almost.")>></p> <div class="locations-grid"> <<set _wCost = CC.bal("wasteland_recon.sp_cost", 50)>> <<if $player.stamina < _wCost>> <span class="location-btn cc-disabled"><<print CC.icon("eye")>> <<print CC.t("world.wasteland.scout", {}, "Scout the Wasteland")>> <span class="loc-cost-badge">[<<print _wCost>> SP]</span></span> <<else>> <a class="location-btn" data-passage="Wasteland_Explore"><<print CC.icon("eye")>> <<print CC.t("world.wasteland.scout", {}, "Scout the Wasteland")>></a> <</if>> <a class="location-btn" data-passage="Swamp_Hunt"><<print CC.icon("bow")>> <<print CC.t("world.wasteland.swamp_hunt", {}, "Contaminated Swamps (Hunting)")>></a> <<if CC.flags.get("discovered_waymeet")>> <a class="location-btn location-hub" data-passage="Waymeet"><<print CC.icon("settlement")>> <<print CC.t("world.wasteland.waymeet", {}, "Waymeet")>> <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.wasteland.hub_tag", {}, "HUB")>></span></a> <</if>> <<if CC.flags.get("discovered_research_station") || (CC.qe && CC.qe.stage("maya_research_station") !== "none")>> <a class="location-btn location-hub" data-passage="Station_Entrance"><<print CC.icon("warning")>> <<print CC.t("world.wasteland.station", {}, "Research Station")>></a> <</if>> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Magistral"><<print CC.t("world.wasteland.back", {}, "← To Highway")>></a> </div> </div>
<<set $player.stamina = Math.max(0, $player.stamina - CC.bal("wasteland_recon.sp_cost", 50))>> <<run CC.skills && CC.skills.addPlayerXp("surv", 1)>> <<set _wReq = CC.bal("wasteland_recon.stages_required", 8)>> <<set _wDone = CC.qe.stage("wasteland_recon") == "done">> <<if CC.qe.stage("wasteland_recon") == "active" and ($wasteland_recon_count || 0) < _wReq>> <<set $wasteland_recon_count = ($wasteland_recon_count || 0) + 1>> <</if>> <<if CC.qe.stage("wasteland_recon") == "active" and ($wasteland_recon_count || 0) >= _wReq>> <<run CC.qe.setStage("wasteland_recon", "scouted")>> <</if>> <<run CC.transient.set("combat_return_passage", "Wasteland")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<if _wDone>><<print CC.t("world.wasteland.title", {}, "Wasteland")>><<else>><<print CC.t("world.wasteland_explore.title", { n: $wasteland_recon_count, max: _wReq }, "Wasteland Reconnaissance [Stage " + $wasteland_recon_count + "/" + _wReq + "]")>><</if>></h2> <<if !CC.flags.get("discovered_waymeet")>> <<run CC.flags.set("discovered_waymeet", true)>> <div class="media-frame"> <img src="assets/Location/wasteland/wastelandSattlemant.jpg" alt="Waymeet" class="big-image"> </div> <p class="reward"><<print CC.icon("diamond")>> <<print CC.t("world.wasteland_explore.found", {}, "OBJECT DISCOVERED: Waymeet a settlement of free women!")>></p> <p><<print CC.t("world.wasteland_explore.found_text", {}, "From a rocky ridge you spot it: a ring of tents and scrap-metal shacks around a deep well, pennants of free crews on poles. No walls, no guards at the gates but plenty of eyes watching the trails. Smoke, hammering, haggling voices. A small free market lives here, beyond the reach of Aegis and the Red Bands.")>></p> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.noted", { n: $wasteland_recon_count, max: _wReq }, "Notes for this sector recorded (progress: " + $wasteland_recon_count + "/" + _wReq + ").")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Wasteland"><<print CC.t("world.wasteland_explore.cover", {}, "Return to Cover")>></a> <a class="button hud-btn light-choice" data-passage="Waymeet"><<print CC.icon("settlement")>> <<print CC.t("world.wasteland_explore.visit", {}, "Visit Waymeet")>></a> </div> <<else>> <<set _roll = random(1, 100)>> <<set _bCh = CC.bal("wasteland_recon.barghuf_ch", 10)>> <<set _zCh = _bCh + CC.bal("wasteland_recon.zombie_ch", 25)>> <<set _rCh = _zCh + CC.bal("wasteland_recon.raider_ch", 30)>> <<if _roll <= _bCh>> <<run CC.transient.set("wasteland_fight", "barghuf")>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.wasteland_explore.barghuf", {}, "WRONGNESS IN THE ROCKS! Something huge moves between the boulders!")>></div> <div class="media-frame"> <img src="assets/Mutant/Barguf.png" alt="Barghuf" class="character-image"> </div> <p><<print CC.t("world.wasteland_explore.barghuf_text", {}, "A hulking humanoid lumbers into view muscle stacked wrong, joints bending where no joints should be. Seven arms. Seven. It sniffs the air and turns all its malformed fury on you. Barghuf hunts alone lucky you.")>></p> <<if !_wDone>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.noted", { n: $wasteland_recon_count, max: _wReq }, "Notes for this sector recorded (progress: " + $wasteland_recon_count + "/" + _wReq + ").")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Barghuf"><<print CC.icon("energy")>> <<print CC.t("world.wasteland_explore.barghuf_go", {}, "Fight the Barghuf!")>></a> </div> <<elseif _roll <= _zCh>> <<run CC.transient.set("wasteland_fight", "zombies")>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.wasteland_explore.zombies", {}, "DEAD ONES! A pack of wandering zombies!")>></div> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland2.jpg" alt="Zombies" class="big-image"> </div> <p><<print CC.t("world.wasteland_explore.zombies_text", {}, "Rotting figures shamble out of the dry grass, moaning two, three, more. Drifters bitten on the trails, risen and hungry. No running: they already smell you.")>></p> <<if !_wDone>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.noted", { n: $wasteland_recon_count, max: _wReq }, "Notes for this sector recorded (progress: " + $wasteland_recon_count + "/" + _wReq + ").")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Wasteland"><<print CC.icon("energy")>> <<print CC.t("world.wasteland_explore.zombies_go", {}, "Fight the dead!")>></a> </div> <<elseif _roll <= _rCh>> <<run CC.transient.set("wasteland_fight", "raiders")>> <div class="hud-alert danger-text"><<print CC.icon("warning")>> <<print CC.t("world.wasteland_explore.raiders", {}, "AMBUSH! Free raiders on the trail!")>></div> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland3.jpg" alt="Raiders" class="big-image"> </div> <p><<print CC.t("world.wasteland_explore.raiders_text", {}, "A whistle from the ravine and ragged women with knives and bows step onto the path. No red headbands, no clan marks: small-time trash shaking down loners. \"Empty your pockets, handsome or bleed!\"")>></p> <<if !_wDone>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.noted", { n: $wasteland_recon_count, max: _wReq }, "Notes for this sector recorded (progress: " + $wasteland_recon_count + "/" + _wReq + ").")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Wasteland"><<print CC.icon("energy")>> <<print CC.t("world.wasteland_explore.raiders_go", {}, "Fight the raiders!")>></a> </div> <<else>> <<set _foundCaps = random(1, 100) <= CC.bal("wasteland_recon.loot_caps_ch", 45)>> <<set _foundMeat = random(1, 100) <= CC.bal("wasteland_recon.loot_meat_ch", 30)>> <div class="media-frame"> <img src="assets/Location/wasteland/wasteland.jpg" alt="Wasteland" class="big-image"> </div> <<if $wasteland_recon_count == 1>> <p><strong><<print CC.t("world.wasteland_explore.s1t", {}, "Sector 1 (Northern rim):")>></strong> <<print CC.t("world.wasteland_explore.s1x", {}, "dry ravines and thorn scrub. Feral tracks everywhere bare feet, small parties, old campfire pits. The wild tribes water here.")>></p> <<elseif $wasteland_recon_count == 2>> <p><strong><<print CC.t("world.wasteland_explore.s2t", {}, "Sector 2 (Waymeet approaches):")>></strong> <<print CC.t("world.wasteland_explore.s2x", {}, "cart ruts, horse dung, sentries' whistles from the ridge. Free crews trade here and watch every stranger twice.")>></p> <<elseif $wasteland_recon_count == 3>> <p><strong><<print CC.t("world.wasteland_explore.s3t", {}, "Sector 3 (Slaver trails):")>></strong> <<print CC.t("world.wasteland_explore.s3x", {}, "fresh wheel ruts, cage bars scratched on stones, an Aegis brand-token dropped in the dust. Maya's colleagues hunt here.")>></p> <<elseif $wasteland_recon_count == 4>> <p><strong><<print CC.t("world.wasteland_explore.s4t", {}, "Sector 4 (Southern hollows):")>></strong> <<print CC.t("world.wasteland_explore.s4x", {}, "water holes ringed with gnawed bones, ambush-friendly gullies, narrow escape paths between the rocks.")>></p> <<elseif $wasteland_recon_count == 5>> <p><strong><<print CC.t("world.wasteland_explore.s5t", {}, "Sector 5 (Shattered road):")>></strong> <<print CC.t("world.wasteland_explore.s5x", {}, "a pre-war highway section swallowed by dunes rusted truck skeletons, an overturned bus, nests of drifters picking the wrecks clean.")>></p> <<elseif $wasteland_recon_count == 6>> <p><strong><<print CC.t("world.wasteland_explore.s6t", {}, "Sector 6 (Barghuf grounds):")>></strong> <<print CC.t("world.wasteland_explore.s6x", {}, "crushed scrub, bones snapped like twigs, seven-fingered handprints in the dust. Something huge nests here you map its trails and back away quietly.")>></p> <<elseif $wasteland_recon_count == 7>> <p><strong><<print CC.t("world.wasteland_explore.s7t", {}, "Sector 7 (Deep wells):")>></strong> <<print CC.t("world.wasteland_explore.s7x", {}, "the oldest water in the Wasteland. Feral tribes, loners and slavers all drink here and all leave each other's throats alone. Until they don't.")>></p> <<else>> <p><strong><<print CC.t("world.wasteland_explore.s8t", {}, "Sector 8 (High overlook):")>></strong> <<print CC.t("world.wasteland_explore.s8x", {}, "the last blank spot on the map. From the ridge the whole Wasteland lies open: trails, camps, Waymeet's smoke, slaver dust on the horizon. The tactical picture is complete.")>></p> <</if>> <<if _foundCaps>> <<set _rawCaps = random(CC.bal("wasteland_recon.loot_caps_min", 15), CC.bal("wasteland_recon.loot_caps_max", 40))>> <<set _capsRes = (CC.gear && CC.gear.calcFoundCaps) ? CC.gear.calcFoundCaps(_rawCaps) : { total: _rawCaps, text: String(_rawCaps) }>> <<set $player.Caps += _capsRes.total>> <p class="reward"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> <<print CC.t("world.wasteland_explore.loot_caps", { n: _capsRes.text }, "A dropped loner's stash in the grass: +" + _capsRes.text + " caps!")>></p> <</if>> <<if _foundMeat>> <<set $player.Raw_meat += CC.bal("wasteland_recon.loot_meat_qty", 2)>> <p class="reward"><<print CC.gear.img("Raw_meat", "chip-icon", "item-frame-loot")>> <<print CC.t("world.wasteland_explore.loot_meat", { n: CC.bal("wasteland_recon.loot_meat_qty", 2) }, "Snared a stray beast in the hollow: +" + CC.bal("wasteland_recon.loot_meat_qty", 2) + " raw meat!")>></p> <</if>> <<if !_foundCaps and !_foundMeat>> <p><<print CC.t("world.wasteland_explore.quiet", {}, "Quiet sector only wind in the grass and distant smoke over Waymeet.")>></p> <</if>> <<if !_wDone>> <<if $wasteland_recon_count >= CC.bal("wasteland_recon.stages_required", 8)>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.done", {}, "Full reconnaissance completed! Maya waits for the report.")>></p> <<else>> <p class="reward"><<print CC.icon("check")>> <<print CC.t("world.wasteland_explore.progress", { n: $wasteland_recon_count, max: _wReq }, "Sector scouted (progress: " + $wasteland_recon_count + "/" + _wReq + ").")>></p> <</if>> <</if>> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Wasteland"><<print CC.t("world.wasteland_explore.cover", {}, "Return to Cover")>></a> </div> <</if>> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.waymeet.title", {}, "Waymeet Free Settlement")>></h2> <div class="media-frame"> <img src="assets/Location/wasteland/wastelandSattlemant.jpg" alt="Waymeet" class="big-image"> </div> <p><<print CC.t("world.waymeet.lead", {}, "A ring of tents and scrap shacks around a deep well. No walls, no Senate, no Red Bands free women who trade, fight, or simply try to survive. Strangers are eyed twice and robbed never: the local crews keep the peace with bows knocked. A small market clatters by the well; the living quarters lie quiet beyond.")>></p> <div class="locations-grid"> <a class="location-btn" data-passage="Waymeet_Market"><<print CC.icon("cart")>> <<print CC.t("world.waymeet.market", {}, "Market")>></a> <a class="location-btn" data-passage="Waymeet_Quarters"><<print CC.icon("district")>> <<print CC.t("world.waymeet.quarters", {}, "Living Quarters")>></a> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Wasteland"><<print CC.t("world.waymeet.back", {}, "← To Wasteland")>></a> </div> </div>
<<run CC.transient.set("cc_market_id", "waymeet")>> <<run CC.market2.drift()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.waymeet_market.title", {}, "Waymeet Market")>></h2> <p><<print CC.t("world.waymeet_market.lead", {}, "Stalls of free craftswomen: crude but honest iron, field greens, wild meat, bitter herbal brews. Hides go cheap here the hunters are glad to be rid of the weight.")>></p> <div id="shop-wrapper"> <<print CC.market2.shopHtml("waymeet")>> </div> <div class="choice-container cc-mt16"> <a class="button hud-btn back-btn" data-passage="Waymeet"><<print CC.t("world.waymeet_market.back", {}, "← Return to Waymeet")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.waymeet_quarters.title", {}, "Waymeet Living Quarters")>></h2> <p><<print CC.t("world.waymeet_quarters.lead", {}, "Quiet rows of tents and dugouts. Women mend nets, grind grain, doze in the shade. Nothing of interest here for now.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Waymeet"><<print CC.t("world.waymeet_quarters.back", {}, "← Return to Waymeet")>></a> </div> </div>
<<if previous() !== "Aegis">> <<run CC.world.payTravel()>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("world.williamson.title", {}, "Williamson Trading Outpost")>></h2> <div class="media-frame"> <img src="assets/Location/Williamson/Williamson.png" alt="Williamson" class="big-image"> </div> <p><<print CC.t("world.williamson.lead", {}, "Staging trading post of the Williamson Merchant Guild among the concrete skeletons of the former suburbs. Armed caravans carrying medicine, rare tech, and fuel halt here as they traverse the Wasteland sectors.")>></p> <<if CC.flags.get("discovered_aegis")>> <div class="section-divider"><span><<print CC.t("world.williamson.locations", {}, "WILLIAMSON LOCATIONS")>></span></div> <div class="locations-grid"> <<set _travelCost = CC.world.travelCost()>> <<if CC.world.canTravel(_travelCost)>> <a class="location-btn location-hub" data-passage="Aegis"><<print CC.icon("settlement")>> <<print CC.t("world.williamson.aegis", {}, "Settlement \"Aegis\"")>> <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.williamson.hub_tag", {}, "HUB")>></span></a> <<else>> <span class="location-btn location-hub cc-disabled"><<print CC.icon("settlement")>> <<print CC.t("world.williamson.aegis", {}, "Settlement \"Aegis\"")>> <span class="loc-hub-tag"><<print CC.icon("door")>> <<print CC.t("world.williamson.hub_tag", {}, "HUB")>></span> <span class="loc-cost-badge">[<<print _travelCost>> SP]</span></span> <</if>> </div> <<if !CC.world.canTravel(_travelCost)>> <div class="hud-alert"><<print CC.icon("warning")>> <<print CC.t("world.williamson.short", { cost: _travelCost }, "Insufficient SP to travel to Aegis (" + _travelCost + " SP required).")>></div> <</if>> <<else>> <p class="cc-dim-italic"><<print CC.t("world.williamson.ruins", {}, "This place resembles ruins.")>></p> <</if>> <<if CC.caravan && CC.caravan.bannerHtml>> <<print CC.caravan.bannerHtml(passage())>> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Magistral"><<print CC.t("world.williamson.back", {}, "← To Highway")>></a> </div> </div>
<<CC_GirlInteract $player.select_girl>>
<<set _ccg to $player.select_girl>> <<set _ccdef to CC.girls.def(_ccg)>> <<set _ccsl to (CC.house && CC.house.getSlaveById) ? CC.house.getSlaveById(_ccg) : null>> <<if !_ccdef>> <div class="hud-alert"><<print CC.t("dlg.service_unknown", {}, "Unknown companion.")>></div> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("dlg.service_back_shelter", {}, "Back to Shelter")>></a> <<elseif CC.girls.isBusy(_ccg)>> <div class="hud-alert"><<print CC.t("dlg.service_busy", {}, "On assignment unavailable until recalled.")>></div> <a class="button hud-btn back-btn" data-passage="Girl_Interact"><<print CC.t("dlg.service_back", {}, "Back")>></a> <<elseif $player.stamina < CC.bal("costs.sex_action_sp", 2)>> <div class="hud-alert"><<print CC.t("dlg.service_nostam", {}, "Insufficient stamina!")>></div> <a class="button hud-btn back-btn" data-passage="Girl_Interact"><<print CC.t("dlg.service_back", {}, "Back")>></a> <<elseif !(CC.rel && CC.rel.checkIntimate && CC.rel.checkIntimate(_ccsl ? "slave" : _ccg, _ccsl).ok)>> <div class="hud-alert"><<print CC.t("dlg.service_denied", {}, "She is not ready for intimacy yet. Build trust or submission first.")>></div> <a class="button hud-btn back-btn" data-passage="Girl_Interact"><<print CC.t("dlg.service_back", {}, "Back")>></a> <<else>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <<print CC.scenes.serviceVideoHtml(_ccg)>> <div class="scene-stamina-container"> <div class="scene-stamina-header"> <span><<print CC.icon("energy")>> <<print CC.t("dlg.service_stamina", {}, "STAMINA (SP)")>></span> <span><strong id="sceneStaminaValText"><<print $player.stamina>></strong> / <<print $player.max_stamina>></span> </div> <<print '<progress id="sceneStaminaBar" class="scene-stamina-bar" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> <div class="choice-container">\ <<run CC.transient.set("cc_girl", _ccg)>>\ <<CC_SceneButtons _ccg>>\ <a class="button hud-btn back-btn" data-passage="Girl_Interact"><<print CC.t("dlg.service_finish", {}, "Finish")>></a>\ </div> </div> <</if>>
<<if CC.day() < CC.bal("events.alex_min_day", 30) or (CC.girls.status("alex") !== "unknown" and not CC.flags.get("alex_abandoned_day")) or CC.girls.status("alex") === "dead" or CC.girls.status("alex") === "ally" or CC.girls.status("alex") === "slave">> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag"><<print CC.t("dialogues.alex.event.tag", {}, "AGROFARM // RUINED HANGAR")>></div> <h2><<print CC.t("dialogues.alex.event.empty_title", {}, "Empty Hangar")>></h2> <p><<print CC.t("dialogues.alex.event.empty_text", {}, "Among the crushed crates and dry straw, all is empty. Only the wind stirs dust across the concrete.")>></p> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Farm"><<print CC.t("dialogues.alex.event.empty_back", {}, "Return to Farm Yard")>></a> </div> </div> <<else>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag"><<print CC.t("dialogues.alex.event.tag", {}, "AGROFARM // RUINED HANGAR")>></div> <h2><<print CC.t("dialogues.alex.event.full_title", {}, "Abandoned Raider")>></h2> <p><<print CC.t("dialogues.alex.event.full_text", {}, "Among crushed crates and dry straw lies a wounded girl in a tactical chest rig. Her thigh has been torn through by a bullet, and the ground around her is soaked with dark blood. She is barely breathing.")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Dialogue_AlexRescueEncounter"><<print CC.icon("warning")>> <<print CC.t("dialogues.alex.event.approach", {}, "Approach & Decide Wounded Raider's Fate")>></a> <a class="button hud-btn back-btn" data-passage="Farm"><<print CC.t("dialogues.alex.event.empty_back", {}, "Return to Farm Yard")>></a> </div> </div> <</if>>
<<set $player.select_girl to "alex">><<goto "Girl_Interact">>
<<if CC.flags.get("bunker_quest_progress") == "END">> <<goto "Quest_bunker_complete">> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/baika/baika.png" alt="Baika" class="character-image"> </div> <h2><<print CC.t("dialogues.baika.hub.title", {}, "Baika (Mechanic & Scavenger)")>></h2> <p><<print CC.t("dialogues.baika.hub.lead", {}, "A girl in protective goggles deftly handles tools, adjusting the spring mechanism of an improvised scrap weapon.")>></p> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Dialogue_BaikaTalk"><<print CC.icon("chat")>> <<print CC.t("dialogues.baika.hub.talk", {}, "Talk to Baika")>></a> <<if CC.flags.get("bunker_quest_progress") == "Complete">> <a class="button hud-btn dark-choice" data-passage="Baika_prelude"><<print CC.icon("kiss")>> <<print CC.t("dialogues.baika.hub.intimate", {}, "Intimacy with Baika")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="ResidentialDistrict"><<print CC.t("dialogues.baika.hub.back", {}, "Back")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/baika/baika.png" alt="Baika" class="character-image"> </div> <h2><<print CC.t("dialogues.baika.prelude.title", {}, "Baika in the Workshop")>></h2> <<set _bchk to CC.rel.checkIntimate("baika")>> <<if !_bchk.ok>> <div class="dialogue-line"> <span class="speaker-label">(Baika)</span> <<print CC.t("dialogues.baika.prelude.busy", {}, "Listen, partner, not now! My hands are shaking, rosin is smoking, and my mood makes me want to throw this soldering iron at the wall. I need to focus on this board, leave me be!")>> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Baika"><<print CC.t("dialogues.baika.prelude.back_workshop", {}, "← Return to the workshop")>></a> </div> <<else>> <div class="dialogue-line"> <span class="speaker-label">(Baika)</span> <<print CC.t("dialogues.baika.prelude.willing", {}, "Oh, now that's an offer I like! After a whole day surrounded by dust and hot solder, my brain desperately needs a pleasant reboot. Bolt the van door shut and come in...")>> </div> <div class="choice-container"> <<if $player.stamina >= CC.bal("costs.sex_action_sp", 2)>> <a class="button hud-btn dark-choice" data-passage="Baika_sex"><<print CC.icon("kiss")>> <<print CC.t("dialogues.baika.prelude.proceed", {}, "Proceed to intimacy")>></a> <<else>> <div class="hud-alert"><<print CC.t("dialogues.baika.prelude.nostam", { n: CC.bal("costs.sex_action_sp", 2) }, "Not enough energy (" + CC.bal("costs.sex_action_sp", 2) + " SP required)!")>></div> <</if>> <a class="button hud-btn back-btn" data-passage="Baika"><<print CC.t("dlg.not_now", {}, "← \"Not now\" (Return)")>></a> </div> <</if>> </div>
<<if $player.stamina < CC.bal("costs.sex_action_sp", 2)>> <div class="hud-alert"><<print CC.t("dialogues.baika.scene.nostam", {}, "Not enough stamina!")>></div> <a class="button hud-btn back-btn" data-passage="Baika"><<print CC.t("dialogues.baika.scene.back", {}, "Back")>></a> <<else>> <<run CC.ui && CC.ui.updateTopHud()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <video id="baikaVid" class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/NPC/baika/blowjob.mp4" type="video/mp4"> </video> </div> <div class="scene-stamina-container"> <div class="scene-stamina-header"> <span><<print CC.icon("energy")>> <<print CC.t("dlg.service_stamina", {}, "STAMINA (SP)")>></span> <span><strong id="sceneStaminaValText"><<print $player.stamina>></strong> / <<print $player.max_stamina>></span> </div> <<print '<progress id="sceneStaminaBar" class="scene-stamina-bar" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> <div class="choice-container">\ <<run CC.transient.set("cc_girl", "baika")>>\ <<CC_SceneButtons "baika">>\ <a class="button hud-btn back-btn" data-passage="Baika"><<print CC.t("dlg.service_finish", {}, "Finish")>></a>\ </div> </div> <</if>>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("dialogues.bar_girl.scene.title", {}, "Bar Restroom Sex")>></h2> <<print CC.scenes.serviceVideoHtml("bar_girl")>> <div class="scene-stamina-container"> <div class="scene-stamina-header"> <span><<print CC.icon("energy")>> <<print CC.t("dialogues.bar_girl.scene.energy", {}, "ENERGY (SP)")>></span> <span><strong id="sceneStaminaValText"><<print $player.stamina>></strong> / <<print $player.max_stamina>></span> </div> <<print '<progress id="sceneStaminaBar" class="scene-stamina-bar" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> <p class="cc-dim-small"><<print CC.t("dialogues.bar_girl.scene.lead", {}, "You lock yourselves inside the cramped, dim restroom stall. The girl presses eagerly against your body, unable to contain her heavy breathing and arousal.")>></p> <div class="choice-container">\ <<run CC.transient.set("cc_girl", "bar_girl")>>\ <<CC_SceneButtons "bar_girl">>\ <a class="button hud-btn back-btn" data-passage="Bar"><<print CC.t("dialogues.bar_girl.scene.back", {}, "Return to the bar")>></a>\ </div> </div>
<<set $dominika_betrayed = true>> <<set $dominika_betray_day = $player.days_survived>> <<run CC.girlSet("dominika", "status", "escaped")>> <<set $player.Canned_Food = Math.max(0, $player.Canned_Food - 2)>> <<set $player.Caps = Math.max(0, $player.Caps - 30)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p><<print CC.t("dialogues.dominika.betrayal.lead", {}, "You brought the wounded Dominika to your shelter a fortified house with a basement. While you gave her a corner in the utility section to rest and bandaged her shoulder, she seemed exhausted and meek. Exhausted by the day's firefight, you fell asleep on the ground floor near the locked entrance...")>></p> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("dialogues.dominika.betrayal.hazard", {}, "NIGHT BETRAYAL!")>></span> <p><<print CC.t("dialogues.dominika.betrayal.hazard_text", {}, "In the middle of the night, you wake up to an icy draft the lock has been picked, and the house's front door is standing wide open!")>></p> </div> <p class="damage"><<print CC.t("dialogues.dominika.betrayal.damage", {}, "Dominika cut her bandages, raided the basement pantry, stole 2 cans of food and 30 caps, and then silently vanished into the dead city's night blizzard!")>></p> <div class="dialogue-line"> <span class="speaker-label"><<print CC.t("dialogues.dominika.betrayal.note_label", {}, "NOTE WRITTEN IN CHARCOAL ON THE WALL")>></span> <<print CC.t("dialogues.dominika.betrayal.note", {}, '"Fool, in the Wasteland there are no allies only predators and prey. Thanks for the bandage and rations. See you in the sniper scope."')>> </div> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="House_Life"><<print CC.t("dialogues.dominika.betrayal.back", {}, "Lock the door and check the perimeter")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/dominika/dominika.png" alt="Dominika" class="character-image"> </div> <div class="dialogue-line"> <span class="speaker-label">(Dominika)</span> <<print CC.t("dialogues.dominika.encounter.line", {}, '"What a catch! Drop the iron, boy! For a living man at the slave market, they\'ll shower me with more ammo than I\'ve seen in my whole life!"')>> </div> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Dominika"><<print CC.icon("swords")>> <<print CC.t("dialogues.dominika.encounter.fight", {}, "Engage in combat!")>></a> <a class="button hud-btn back-btn" data-passage="Outside"><<print CC.t("dialogues.dominika.encounter.flee", {}, "Try to escape into an alley")>></a> </div> </div>
<<set $player.select_girl to "dominika">><<goto "Girl_Interact">>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p><<print CC.t("dialogues.luna.aftermath.text", {}, "Luna has settled into the shelter. Her fear of the surface is stronger than any shackles she will obey unquestioningly, as long as she never has to return to the darkness of the Wasteland.")>></p> <div class="choice-container"> <a class="button hud-btn dark-choice" data-passage="House_Life"><<print CC.t("dialogues.luna.aftermath.back", {}, "Go to shelter terminal")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag"><<print CC.t("dialogues.luna.enslave.tag", {}, "STATUS: FORCED SUBMISSION")>></div> <div class="dialogue-line"> <span class="speaker-label">(You)</span> <<print CC.t("dialogues.luna.enslave.you_line", {}, '"You\'re alive only because you\'ll be useful. From now on, your life belongs to this shelter."')>> </div> <<run CC.girlSet("luna", "status", "slave")>> <<run CC.girlSet("luna", "sub", Math.max(CC.girls.sub("luna"), 35))>> <div class="dialogue-line"> <span class="speaker-label">(Luna)</span> <<print CC.t("dialogues.luna.enslave.luna_line", {}, '"(Kneeling on the cold concrete, feeling the heavy steel on her neck, looking up with tense relief) I understand everything, the Wasteland kills the weak... But here I have a chance to survive. I will do whatever you order to earn my keep..."')>> </div> <div class="media-frame"> <video class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/luna/blowjob.mp4" type="video/mp4"> </video> </div> <div class="choice-container"> <a class="button hud-btn dark-choice" data-passage="Luna_Final"><<print CC.t("dialogues.luna.enslave.go", {}, "Enforce master's authority")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p><<print CC.t("dialogues.luna.finale.text", {}, "The heavy metal of the collar closes over her past. She is no longer a homeless drifter among the toxic ruins from now on, she is under your complete control.")>></p> <<set $player.stamina = Math.max(0, $player.stamina - 30)>> <<run CC.girlSet("luna", "status", "slave")>> <<set $player.survivors_met++>> <div class="choice-container"> <a class="button hud-btn dark-choice" data-passage="Luna_AfterMath"><<print CC.t("dialogues.luna.finale.done", {}, "Complete order")>></a> </div> </div>
<<set $player.select_girl to "luna">><<goto "Girl_Interact">>
<<if CC.girls.status("mary") == "ally" or CC.girls.status("mary") == "slave">> <<if $player.stamina < CC.bal("costs.sex_action_sp", 2)>> <div class="hud-alert"><<print CC.t("dialogues.mary.fuck.nostam_sp", { n: CC.bal("costs.sex_action_sp", 2) }, "Insufficient stamina (need " + CC.bal("costs.sex_action_sp", 2) + " SP)!")>></div> <a class="button hud-btn back-btn" data-passage="Mary_Interact"><<print CC.t("dialogues.mary.fuck.back", {}, "Back")>></a> <<else>> <<if ($player.mary_sex_day || 0) !== CC.day()>> <<set $player.mary_sex_day = CC.day()>> <<run CC.girlAdd && CC.girlAdd("mary", "friend", CC.bal("rel.tick_friend", 1))>> <</if>> <<run CC.ui && CC.ui.updateTopHud()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <video id="maryVid" class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/NPC/mary/blowjob.mp4" type="video/mp4"> </video> </div> <div class="scene-stamina-container"> <div class="scene-stamina-header"> <span><<print CC.icon("energy")>> <<print CC.t("dlg.service_stamina", {}, "STAMINA (SP)")>></span> <span><strong id="sceneStaminaValText"><<print $player.stamina>></strong> / <<print $player.max_stamina>></span> </div> <<print '<progress id="sceneStaminaBar" class="scene-stamina-bar" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> <div class="choice-container">\ <<run CC.transient.set("cc_girl", "mary")>>\ <<CC_SceneButtons "mary">>\ <a class="button hud-btn back-btn" data-passage="Mary_Interact"><<print CC.t("dlg.finish_back", {}, "← Finish")>></a>\ </div> </div> <</if>> <<else>> <<if $player.stamina < CC.bal("costs.sex_action_sp", 2) or $player.Caps < CC.bal("costs.mary_caps", 10)>> <div class="hud-alert"><<print CC.t("dialogues.mary.fuck.nostam_both", { n: CC.bal("costs.sex_action_sp", 2), m: CC.bal("costs.mary_caps", 10) }, "Insufficient stamina (need " + CC.bal("costs.sex_action_sp", 2) + " SP) or caps (need " + CC.bal("costs.mary_caps", 10) + ")!")>></div> <a class="button hud-btn back-btn" data-passage="Mary"><<print CC.t("dialogues.mary.fuck.back", {}, "Back")>></a> <<else>> <<set $player.Caps -= CC.bal("costs.mary_caps", 10)>> <<if ($player.mary_sex_day || 0) !== CC.day()>> <<set $player.mary_sex_day = CC.day()>> <<run CC.girlAdd && CC.girlAdd("mary", "friend", CC.bal("rel.tick_friend", 1))>> <</if>> <<run CC.ui && CC.ui.updateTopHud()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <video id="maryVid" class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/NPC/mary/blowjob.mp4" type="video/mp4"> </video> </div> <div class="scene-stamina-container"> <div class="scene-stamina-header"> <span><<print CC.icon("energy")>> <<print CC.t("dlg.service_stamina", {}, "STAMINA (SP)")>></span> <span><strong id="sceneStaminaValText"><<print $player.stamina>></strong> / <<print $player.max_stamina>></span> </div> <<print '<progress id="sceneStaminaBar" class="scene-stamina-bar" value="' + $player.stamina + '" max="' + $player.max_stamina + '"></progress>' >> </div> <div class="choice-container">\ <<run CC.transient.set("cc_girl", "mary")>>\ <<CC_SceneButtons "mary">>\ <a class="button hud-btn back-btn" data-passage="Mary"><<print CC.t("dlg.finish_back", {}, "← Finish")>></a>\ </div> </div> <</if>> <</if>>
<<if CC.girls.status("mary") == "ally" or CC.girls.status("mary") == "slave">> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("dialogues.mary.hub.empty_title", {}, "Abandoned Shack in the Slums")>></h2> <p><<print CC.t("dialogues.mary.hub.empty_text", {}, "The shack is empty and freezing. The door is kicked in, and an old mattress has been slashed open by scavengers. No one is here.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="House_Life"><<print CC.icon("door")>> <<print CC.t("dialogues.mary.hub.shelter", {}, "Return to Shelter")>></a> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("dialogues.mary.hub.settlement", {}, "Return to Settlement")>></a> </div> </div> <<else>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/NPC/mary/mary_whore.png" alt="Mary" class="character-image"> </div> <h2><<print CC.t("dialogues.mary.hub.title", {}, "Mary (Slum Prostitute)")>></h2> <<if CC.girls.friend("mary") >= 80>> <p><<print CC.t("dialogues.mary.hub.hi_friend", {}, '"You came back!.. Please, speak to me! I\'ve been waiting for you..."')>></p> <<else>> <p><<print CC.t("dialogues.mary.hub.price", {}, '"Sex, straight to the point: 10 caps. I know how to do everything oral, anal, please... I really need the caps..."')>></p> <</if>> <p class="cc-amber-mt6"><<print CC.icon("diamond")>> <<print CC.t("dialogues.mary.hub.trust", {}, "Mary's Trust in you:")>> <strong><<print CC.girls.friend("mary")>></strong> / 80</p> <div class="choice-container"> <a class="button hud-btn light-choice" data-passage="Dialogue_MaryTalk"><<print CC.icon("chat")>> <<print CC.t("dialogues.mary.hub.talk", {}, "Talk to Mary")>></a> <<if CC.girls.friend("mary") < 80 and $player.Caps >= CC.bal("costs.mary_caps", 10)>> <a class="button hud-btn dark-choice" data-passage="Mary_prelude"><<print CC.icon("kiss")>> <<print CC.t("dialogues.mary.hub.intimate", {}, "Offer Intimacy")>></a> <</if>> <a class="button hud-btn back-btn" data-passage="Settlement"><<print CC.t("dialogues.mary.hub.back", {}, "Back")>></a> </div> </div> <</if>>
<<set $player.select_girl to "mary">><<goto "Girl_Interact">>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <<if CC.girls.status("mary") == "ally" or CC.girls.status("mary") == "slave">> <img src="assets/NPC/mary/mary.png" alt="Mary" class="character-image"> <<else>> <img src="assets/NPC/mary/mary_whore.png" alt="Mary" class="character-image"> <</if>> </div> <h2>Mary</h2> <<if CC.girls.status("mary") == "ally" or CC.girls.status("mary") == "slave">> <<print CC.rel.hudHtml("mary")>> <<set _mchk to CC.rel.checkIntimate("mary")>> <<if !_mchk.ok>> <<if _mchk.reason == "rebellious_slave">> <div class="dialogue-line"> <span class="speaker-label">(Mary)</span> <<print CC.t("dialogues.mary.prelude.rebel", {}, '"No... please, don\'t come near me! I\'m in too much pain and scared right now, just leave me alone!"')>> </div> <<else>> <div class="dialogue-line"> <span class="speaker-label">(Mary)</span> <<print CC.t("dialogues.mary.prelude.lowtrust", {}, '"We... we aren\'t that close yet. I need time and more trust before sharing a bed again..."')>> </div> <</if>> <div class="choice-container"> <a class="button hud-btn back-btn" data-passage="Mary_Interact"><<print CC.t("dlg.back_short", {}, "← Return")>></a> </div> <<else>> <div class="dialogue-line"> <span class="speaker-label">(Mary)</span> <<if CC.girls.status("mary") == "slave">> <<print CC.t("dialogues.mary.prelude.willing_slave", {}, '"I obey your command, master... Thank you for keeping me safe in this shelter. My body is entirely at your disposal..."')>> <<else>> <<print CC.t("dialogues.mary.prelude.willing_ally", {}, '"Hello, my savior... Beside you, I feel safe and warm. I will fulfill your every desire..."')>> <</if>> </div> <div class="choice-container"> <<if $player.stamina >= CC.bal("costs.sex_action_sp", 2)>> <a class="button hud-btn dark-choice" data-passage="Fuck_Mary"><<print CC.icon("kiss")>> <<print CC.t("dialogues.mary.prelude.proceed", {}, "Proceed to Intimacy")>></a> <<else>> <div class="hud-alert"><<print CC.t("dialogues.mary.prelude.nostam_sp", { n: CC.bal("costs.sex_action_sp", 2) }, "Insufficient stamina (need " + CC.bal("costs.sex_action_sp", 2) + " SP)!")>></div> <</if>> <a class="button hud-btn back-btn" data-passage="Mary_Interact"><<print CC.t("dlg.not_now", {}, "← \"Not now\" (Return)")>></a> </div> <</if>> <<else>> <p class="cc-amber-mt6"><<print CC.icon("diamond")>> <<print CC.t("dialogues.mary.hub.trust", {}, "Mary's Trust in you:")>> <strong><<print CC.girls.friend("mary")>></strong> / 80</p> <div class="dialogue-line"> <span class="speaker-label">(Mary)</span> <<print CC.t("dialogues.mary.prelude.client", {}, '"You pay ten caps for my time... Alright, money up front. Let\'s head around the corner into that dark alley so guards and prying eyes don\'t spot us, and make it quick..."')>> </div> <div class="choice-container"> <<if $player.stamina >= CC.bal("costs.sex_action_sp", 2) and $player.Caps >= CC.bal("costs.mary_caps", 10)>> <a class="button hud-btn dark-choice" data-passage="Fuck_Mary"><<print CC.icon("kiss")>> <<print CC.t("dialogues.mary.prelude.paybegin", { n: CC.bal("costs.mary_caps", 10) }, "Pay & Begin (" + CC.bal("costs.mary_caps", 10) + " caps)")>></a> <<else>> <div class="hud-alert"><<print CC.t("dialogues.mary.prelude.nostam_both", { n: CC.bal("costs.sex_action_sp", 2), m: CC.bal("costs.mary_caps", 10) }, "Insufficient stamina (need " + CC.bal("costs.sex_action_sp", 2) + " SP) or caps (need " + CC.bal("costs.mary_caps", 10) + ")!")>></div> <</if>> <a class="button hud-btn back-btn" data-passage="Mary"><<print CC.t("dlg.not_now", {}, "← \"Not now\" (Return)")>></a> </div> <</if>> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("dialogues.selena.bunker.title", {}, "Selena in Chains")>></h2> <div class="media-frame"> <img src="assets/selena/selena_bunker.png" alt="Selena" class="character-image"> </div> <div class="dialogue-line"> <span class="speaker-label">(Selena)</span> <<print CC.t("dialogues.selena.bunker.line", {}, '"Hey! Over here, free me! That bastard left me chained up and helpless..."')>> </div> <<run CC.girlSet("selena", "status", "Familiar")>> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Dialogue_SelenaRescueEncounter"><<print CC.icon("energy")>> <<print CC.t("dialogues.selena.bunker.interrogate", {}, "Interrogate Captive & Decide Her Fate")>></a> <a class="button hud-btn back-btn" data-passage="Bunker_inside"><<print CC.t("dialogues.selena.bunker.leave", {}, "Leave Chained")>></a> </div> </div>
<<set $player.select_girl to "selena">><<goto "Girl_Interact">>
<<set $player.stamina = Math.max(0, $player.stamina - 20)>> <<run CC.girlSet("selena", "status", "slave")>> <<run CC.girlSet("selena", "sub", 45)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <video id="selenaBunkerVid" class="scene-video" autoplay muted loop playsinline preload="auto"> <source src="assets/selena/deepthroat_force.mp4" type="video/mp4"> </video> </div> <div class="choice-container"> <<set _takeCap to CC.t("dialogues.selena.bunker.take", {}, "Take Subjugated Selena to Your Shelter")>> <<button _takeCap>> <<goto "House_Life">> <</button>> </div> </div>
<<set $player.select_girl to "terra">><<goto "Girl_Interact">>
<<set $player.select_girl to "verona">><<goto "Girl_Interact">>
<<set _skins = CC.bal("loot.barghuf_skin_min", 4) + Math.floor(Math.random() * (CC.bal("loot.barghuf_skin_max", 8) - CC.bal("loot.barghuf_skin_min", 4) + 1))>> <<set $player.Mutant_skin = (Number($player.Mutant_skin) || 0) + _skins>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("combat.kill_barghuf.title", {}, "BARGHUF SLAIN!")>></h2> <div class="media-frame"> <img src="assets/Mutant/Barguf.png" alt="Barghuf" class="character-image"> </div> <p><<print CC.t("combat.kill_barghuf.lead", {}, "The seven-armed brute crashes into the dust, muscles twitching. Flaying such a carcass is grim work but its hide is thick and valuable.")>></p> <p class="reward"><<print CC.gear.img("Mutant_skin", "chip-icon", "item-frame-loot")>> <<print CC.t("combat.kill_barghuf.loot", { n: _skins }, "Flayed mutant hides: +" + _skins + "!")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.kill_barghuf.go", {}, "Continue")>></a> </div> </div>
<<set $combat = CC.rep.startGateFight("aegis")>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.squadCombat.newFight(["barghuf"])>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.caravan.startAttack()>> <<goto "Combat_Enemy_Turn">>
<<run CC.squadCombat && CC.squadCombat.clearFight()>> <<set $combat = null>> <<set $player.game_status = 0>> <<set $player.health = 0>> <<set $lastPassage = null>> <<run CC.transient && CC.transient.clear("combat_no_flee")>> <<run CC.transient && CC.transient.clear("combat_lethal_kill")>> <<run CC.transient && CC.transient.clear("surrender_foes_total")>> <<run CC.transient && CC.transient.clear("surrender_foes_left")>> <<run CC.transient && CC.transient.clear("last_defeated_enemy")>> <<run CC.transient && CC.transient.clear("combat_return_passage")>> <<run CC.transient && CC.transient.clear("squad_combat_mode")>> <<run CC.transient && CC.transient.clear("squad_combat_target")>> <<run CC.transient && CC.transient.clear("squad_combat_weapons")>> <<run CC.transient && CC.transient.clear("mistral_pack_n")>> <<run CC.transient && CC.transient.clear("mistral_pack_room")>> <div class="terminal-card defeat-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="damage"><<print CC.t("combat.defeat.title", {}, "CRITICAL FAILURE // BIOLOGICAL DEATH")>></h2> <p><<print CC.t("combat.defeat.lead", {}, "Your lifeless body was left abandoned among the ruins of an unnamed district. The chronicle of your shelter has ended.")>></p> <a class="button hud-btn danger-choice" data-passage="MainMenu"><<print CC.t("combat.defeat.back", {}, "Main Terminal")>></a> </div>
<<set $combat = CC.squadCombat.newFight(["dominika"])>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.squadCombat.newFight(["dominika"])>> <<goto "Combat_Enemy_Turn">>
<<if !$combat>> <div class="terminal-card combat-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p>No active fight.</p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack">Return</a> </div> </div> <<else>> <<if $combat.enemyBlock>> <<run CC.squadCombat.enemyBlock()>> <</if>> <<if CC.squadCombat.allAlliesDown()>> <<goto "Combat_Defeat">> <<elseif CC.squadCombat.allEnemiesDone()>> <<goto "Combat_Victory">> <<else>> <div class="terminal-card combat-card cc-combat-compact"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag cc-tag-compact"><<print CC.t("combat.tag", {}, "TACTICAL COMBAT")>></div> <<print CC.squadCombat.battleHtml()>> <<print CC.squadCombat.logHtml()>> <<print CC.squadCombat.actionsHtml()>> </div> <</if>> <</if>>
<<if CC.squadCombat.tryFleeFight()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <<if CC.flags.get("cornelia_caravan_failed")>> <p class="damage"><<print CC.t("caravan_quest.flee_fail", {}, "You broke formation and abandoned the convoy! The hostiles quickly overwhelmed the wagons, killing the drivers and looting the cargo. The mission is an utter failure.")>></p> <a class="button hud-btn main-btn" data-passage="Aegis_Command"><<print CC.icon("road")>> <<print CC.t("caravan_quest.return_aegis", {}, "Return to Principia")>></a> <<else>> <p class="reward"><<print CC.t("combat.flee.ok", {}, "Managed to escape.")>></p> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.flee.back", {}, "Return")>></a> <</if>> </div> <<else>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p class="damage"><<print CC.t("combat.flee.blocked", {}, "Escape route blocked! The enemy strikes your back as you try to retreat!")>></p> <a class="button hud-btn danger-choice" data-passage="Combat_Enemy_Turn"><<print CC.t("combat.flee.hold", {}, "Hold Position")>></a> </div> <</if>>
<<set $combat = CC.squadCombat.newFight(["raider"])>> <<goto "Combat_Enemy_Turn">>
<<if CC.squad && CC.squad.count() > 0>> <<set $combat = CC.squadCombat.newFight(["red_raider", "raider"])>> <<else>> <<set $combat = CC.squadCombat.newFight(["red_raider"])>> <</if>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.squadCombat.newFight(["roach", "roach"])>> <<goto "Combat_Enemy_Turn">>
<<run CC.transient && CC.transient.set("combat_return_passage", "MistralEntered")>> <<set $combat = CC.squadCombat.newFight(["scarbourg"])>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.rep.startGateFight("settlement")>> <<goto "Combat_Enemy_Turn">>
<<set _res = CC.squadCombat.applyAftermath()>> <<set $combat = null>> <<set _primary = _res ? _res.primary : null>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("combat.victory.title", {}, "ENEMY DEFEATED!")>></h2> <<if _res && _res.downed && _res.downed.length>> <p class="damage"><<print CC.icon("blood")>> <<print CC.t("combat.victory.downed", { n: _res.downed.length }, "Critically wounded (unavailable for 7 days): " + _res.downed.length + " fighter(s).")>></p> <</if>> <<if CC.flags.get("cornelia_caravan_escort_active")>> <<set _caravanSt = CC.caravanQuest && CC.caravanQuest.state ? CC.caravanQuest.state() : null>> <p><<print CC.t("caravan_quest.ambush_repelled", {}, "The attackers are slaughtered or driven back into the wasteland! The drivers quickly check the axle pins and urge the draft beasts onward.")>></p> <div class="choice-container"> <<if _res && _res.loots && _res.loots.length>> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<for _li = 0; _li < _res.loots.length; _li++>> <<print CC.combat2.raiderLootHtml(_res.loots[_li])>> <</for>> <</if>> <<if _caravanSt && _caravanSt.progress >= 10>> <<run _caravanSt.stage = "completed">> <<if !(CC.qe && CC.qe.stage && CC.qe.stage("cornelia_caravan_contract") === "active") and CC.qe && CC.qe.setStage && CC.qe.stage && CC.qe.stage("cornelia_caravan") !== "done">> <<run CC.qe.setStage("cornelia_caravan", "completed")>> <</if>> <<run CC.flags.set("cornelia_caravan_escort_active", false)>> <p class="reward"><<print CC.t("caravan_quest.arrived", {}, "The tall stockade walls of New Hope emerge over the horizon. The caravan rolls through the reinforced gatehouse safely!")>></p> <a class="button hud-btn main-btn" data-passage="Settlement"><<print CC.icon("settlement")>> <<print CC.t("caravan_quest.continue_btn", {}, "Enter New Hope")>></a> <<else>> <a class="button hud-btn main-btn" data-passage="Quest_Caravan_Escort"><<print CC.icon("shield")>> <<print CC.t("caravan_quest.continue_escort", {}, "Return to Caravan")>></a> <</if>> </div> <<elseif _primary == "dominika">> <<if CC.flags.get("dominika_betrayed")>> <p><<print CC.t("combat.victory.dom_betrayed", {}, "Dominika is knocked into the dirt once again. The pistol is kicked from her trembling fingers.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Dominika_Rematch_Victory"><<print CC.icon("energy")>> <<print CC.t("combat.victory.dom_submit", {}, "Accept Her Complete Submission")>></a> </div> <<else>> <p><<print CC.t("combat.victory.dom_down", {}, "Dominika lies on the ground clutching a wounded shoulder, her carbine sent sprawling.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Dialogue_DominikaDefeatEncounter"><<print CC.icon("energy")>> <<print CC.t("combat.victory.dom_fate", {}, "Interrogate & Decide Dominika's Fate")>></a> </div> <</if>> <<elseif _primary == "legionary">> <p><<print CC.t("caravan.victory_legion_down", {}, "The Aegis legionaries collapse into the dust, their weapons clattering onto the stones. The trade convoy is defenseless.")>></p> <div class="choice-container"> <<if _res && _res.loots && _res.loots.length>> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<for _li = 0; _li < _res.loots.length; _li++>> <<print CC.combat2.raiderLootHtml(_res.loots[_li])>> <</for>> <</if>> <a class="button hud-btn reward-btn" data-passage="Caravan_Loot"><<print CC.icon("backpack")>> <<print CC.t("caravan.loot_title", {}, "Plunder Caravan Cargo")>></a> </div> <<elseif _primary == "legionary_patrol" || _primary == "legionary_veteran">> <<run CC.rep && CC.rep.markGateFought && CC.rep.markGateFought(_primary == "legionary_veteran" ? "aegis" : "settlement")>> <<if _primary == "legionary_veteran">> <p><<print CC.t("rep.victory_elite_down", {}, "The Senate veterans yield the ground, but the gatehouse seals shut behind them. Aegis does not forgive only forgets, for caps.")>></p> <<else>> <p><<print CC.t("rep.victory_patrol_down", {}, "The gate patrol breaks and drags its wounded inside. The gates stay barred reinforcements already man the wall.")>></p> <</if>> <div class="choice-container"> <<if _res && _res.loots && _res.loots.length>> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<for _li = 0; _li < _res.loots.length; _li++>> <<print CC.combat2.raiderLootHtml(_res.loots[_li])>> <</for>> <</if>> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("rep.continue", {}, "Continue")>></a> </div> <<elseif CC.flags.get("terra_fight_active")>> <<set _terraLoot = CC.terra.awardVictory()>> <p><<print CC.t("combat.victory.terra_down", {}, "All three Red Band raiders collapse into the dust, neutralized. Their looted supplies drop to the stones, and the captives watch with held breath as you lower your weapon.")>></p> <div class="choice-container"> <strong><<print CC.t("combat.victory.loot", {}, "Plunder Obtained:")>></strong> <p class="reward"><<print CC.gear.img("Caps", "chip-icon", "item-frame-loot")>> +<<print _terraLoot ? _terraLoot.caps : 400>> caps</p> <p class="reward"><<print CC.gear.img("Medkit", "chip-icon", "item-frame-loot")>> +<<print _terraLoot ? _terraLoot.meds : 4>> Medkits</p> <p class="reward"><<print CC.gear.img("Beast_hide", "chip-icon", "item-frame-loot")>> +<<print _terraLoot ? _terraLoot.hides : 4>> Beast Hides</p> <p class="reward"><<print CC.icon("chain")>> <<print CC.t("combat.victory.terra_slaves_liberated", {}, "2 captives liberated and added to your shelter / escort")>></p> <a class="button hud-btn main-btn cc-mt12" data-passage="Terra_Rescue_Encounter"><<print CC.icon("energy")>> <<print CC.t("combat.victory.terra_approach", {}, "Approach the chained black-haired captive")>></a> </div> <<elseif _primary == "raider" || _primary == "red_raider">> <<if _primary == "raider" && CC.transient && CC.transient.get("combat_return_passage") === "City_Center">> <<run CC.world && CC.world.decrementRuinsRaiders && CC.world.decrementRuinsRaiders()>> <</if>> <<if _res && _res.anyDownedFoe>> <p><<print CC.t("combat.victory.raiders_beg", {}, "Survivors lie incapacitated in the dust, begging for mercy.")>></p> <div class="choice-container"> <<if _res.loots && _res.loots.length>> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<for _li = 0; _li < _res.loots.length; _li++>> <<print CC.combat2.raiderLootHtml(_res.loots[_li])>> <</for>> <</if>> <a class="button hud-btn main-btn" data-passage="Dialogue_RaiderSurrenderEncounter"><<print CC.icon("energy")>> <<print CC.t("combat.victory.raiders_fate", {}, "Decide Their Fate")>></a> </div> <<else>> <p><<print CC.t("combat.victory.corpses", {}, "Only corpses remain in the dust there is no one left to take prisoner.")>></p> <div class="choice-container"> <<if _res.loots && _res.loots.length>> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<for _li = 0; _li < _res.loots.length; _li++>> <<print CC.combat2.raiderLootHtml(_res.loots[_li])>> <</for>> <</if>> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.victory.go", {}, "Continue")>></a> </div> <</if>> <<elseif _primary == "zombie">> <<set _ret = (CC.transient) ? CC.transient.get("combat_return_passage") : "">> <<if _ret == "Wasteland">> <p><<print CC.t("combat.victory.zombie_clear", {}, "The mutants lie still among the dry grass. The trail is clear for now.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.victory.go", {}, "Continue")>></a> </div> <<elseif _ret && _ret.indexOf("Station_") == 0>> <<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if _ret == "Station_Entrance">><<set $station.entrance_cleared = true>> <<elseif _ret == "Station_Meeting">><<set $station.meeting_cleared = true>> <<elseif _ret == "Station_Guard">><<set $station.guard_cleared = true>> <</if>> <p><<print CC.t("combat.victory.station_zombie_clear", {}, "The undead guards collapse onto the cold concrete. The room is secure.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.victory.go", {}, "Continue")>></a> </div> <<else>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Zombie_Kill"><<print CC.t("combat.victory.zombie_area", {}, "Clear the Area")>></a> </div> <</if>> <<elseif _primary == "scarbourg">> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Scarbourg_Kill"><<print CC.t("combat.victory.scarbourg_lair", {}, "Search the Monster's Lair")>></a> </div> <<elseif _primary == "roach">> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Roach_Kill"><<print CC.t("combat.victory.roach_nest", {}, "Inspect the Nest")>></a> </div> <<elseif _primary == "barghuf">> <<set _ret = (CC.transient) ? CC.transient.get("combat_return_passage") : "">> <<if _ret && _ret.indexOf("Station_") == 0>> <<if !$station>> <<set $station = { entrance_cleared: false, meeting_cleared: false, meeting_looted: false, lab_cleared: false, lab_looted: false, guard_cleared: false, guard_looted: false, post_cleared: false, post_looted: false, radio_freq: 91.5 }>> <</if>> <<if _ret == "Station_Lab">><<set $station.lab_cleared = true>> <<elseif _ret == "Station_Observation">><<set $station.post_cleared = true>> <</if>> <p><<print CC.t("combat.victory.station_barghuf_clear", {}, "The seven-armed mutant falls with a heavy thud, crushing lab equipment beneath its bulk. The area is clear.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.victory.go", {}, "Continue")>></a> </div> <<else>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Barghuf_Kill"><<print CC.t("combat.victory.barghuf_carcass", {}, "Flay the Carcass")>></a> </div> <</if>> <<else>> <p><<print CC.t("combat.victory.neutralized", {}, "Target neutralized.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-cc="nav.fleeBack"><<print CC.t("combat.victory.go", {}, "Continue")>></a> </div> <</if>> </div>
<<set _kind = CC.transient.get("wasteland_fight")>> <<if _kind == "zombies">> <<set _n = random(CC.bal("wasteland_recon.zombie_min", 2), CC.bal("wasteland_recon.zombie_max", 4))>> <<set _foe = "zombie">> <<else>> <<set _n = random(CC.bal("wasteland_recon.raiders_min", 1), CC.bal("wasteland_recon.raiders_max", 3))>> <<set _foe = "raider">> <</if>> <<set _ids = [_foe]>> <<if _n > 1>><<set _ids = _ids.concat([_foe])>><</if>> <<if _n > 2>><<set _ids = _ids.concat([_foe])>><</if>> <<if _n > 3>><<set _ids = _ids.concat([_foe])>><</if>> <<set $combat = CC.squadCombat.newFight(_ids)>> <<goto "Combat_Enemy_Turn">>
<<set $combat = CC.world.mistralZombieFight()>> <<goto "Combat_Enemy_Turn">>
<<set $player.Pistol = ($player.Pistol || 0) + 1>> <<run CC.girlSet("dominika", "status", "ally")>> <<run CC.girlSet("dominika", "sub", 100)>> <<run CC.girlAdd("dominika", "friend", 50)>> <<run CC.flags.set("dominika_betrayed", false)>> <<run CC.flags.set("discovered_dominika", true)>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/dominika/dominika.png" alt="Dominika" class="character-image"> </div> <h2><<print CC.t("dialogues.dominika.rematch.title", {}, "Absolute Submission of Dominika")>></h2> <div class="dialogue-line"> <span class="speaker-label">(Dominika)</span> <<print CC.t("dialogues.dominika.rematch.line", {}, '"(She sinks onto both knees directly into the road dust, bowing her head before you and presenting her pistol grip-first) You bested me again... You pinned me twice in honorable combat. In the Wasteland, the law of strength reigns supreme, and you are the only alpha male I acknowledge as stronger than myself. I won\'t run anymore. I belong to you body, soul, and steel. Do with me whatever you desire... my master."')>> </div> <p class="reward"><<print CC.t("dialogues.dominika.rematch.reward", {}, "Dominika unconditionally recognized your dominance! Trophy obtained: 9mm Pistol. Dominika Submission: 100% (Maximum), Trust: +50.")>></p> <div class="choice-container"> <a class="button hud-btn dark-choice" data-passage="House_Life"><<print CC.t("dialogues.dominika.rematch.escort", {}, "Escort the Subdued Warrior to Shelter")>></a> </div> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "City_Center")>> <<run CC.transient && CC.transient.clear("ruins_raider_decremented")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p class="damage"><<print CC.t("combat.raider_encounter.lead", {}, "A feral scavenger leaps from a ruined building, aiming a zip-gun straight at you!")>></p> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Raider"><<print CC.t("combat.raider_encounter.fight", {}, "Fight to the Death!")>></a> <a class="button hud-btn back-btn" data-passage="City_Center"><<print CC.t("combat.raider_encounter.back", {}, "Retreat")>></a> </div> </div>
<<set _earned = CC.qe && CC.qe.stage("severina_roaches") == "active">> <<if _earned>> <<set _roachMeat = CC.bal("loot.roach_meat", 4)>> <<set _roachCaps = CC.bal("loot.roach_caps", 30)>> <<set $player.Raw_meat = (Number($player.Raw_meat) || 0) + _roachMeat>> <<set $player.Caps = (Number($player.Caps) || 0) + _roachCaps>> <<run CC.qe && CC.qe.setStage("severina_roaches", "killed")>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p><<print CC.t("combat.roach_kill.lead", {}, "The mutated cockroaches twitch their barbed legs one last time and go still. The cellar falls silent only water dripping somewhere in the dark.")>></p> <<if _earned>> <div class="reward"> <strong><<print CC.t("combat.victory.loot", {}, "Loot Obtained:")>></strong> <<print CC.gear.chipHtml("Raw_meat", _roachMeat)>><<print CC.gear.chipHtml("Caps", _roachCaps)>> </div> <</if>> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Bar"><<print CC.t("combat.roach_kill.back", {}, "Report back to Severina")>></a> </div> </div>
<div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="media-frame"> <img src="assets/Mutant/Scarbourg.png" alt="Scarbourg" class="character-image"> </div> <div class="hazard-notice"> <span class="hazard-icon"><<print CC.icon("warning")>> <<print CC.t("combat.scarbourg_encounter.boss", {}, "BOSS: SCARBOURG (ALPHA MUTANT)")>></span> <p><<print CC.t("combat.scarbourg_encounter.lead", {}, "A monstrous beast on four clawed limbs roars in the mansion ballroom!")>></p> </div> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Scarbourg"><<print CC.t("combat.scarbourg_encounter.fight", {}, "Fight for Your Life!")>></a> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("combat.scarbourg_encounter.flee", {}, "Flee in Panic")>></a> </div> </div>
<<set $mistral.Mistral_Living_room = 0>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2 class="reward"><<print CC.t("combat.scarbourg_kill.title", {}, "ALPHA MUTANT SLAIN!")>></h2> <p><<print CC.t("combat.scarbourg_kill.lead", {}, "The beast collapses dead onto the shattered marble hearth.")>></p> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Mistral_Living_room"><<print CC.t("combat.scarbourg_kill.back", {}, "Search the Mansion Hall")>></a> </div> </div>
<<run CC.transient && CC.transient.set("combat_return_passage", "MistralEntered")>> <<set _pack = CC.world.mistralPackSize()>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <<if _pack > 1>> <p class="damage"><<print CC.t("combat.zombie_encounter.lead_pack", {n: _pack}, "From the dark corners, " + _pack + " bodies shredded by biological virus lunge with feral howls — the whole pack attacks at once!")>></p> <<else>> <p class="damage"><<print CC.t("combat.zombie_encounter.lead", {}, "From beneath a heap of refuse, a body shredded by biological virus lunges with a feral howl!")>></p> <</if>> <div class="choice-container"> <a class="button hud-btn danger-choice" data-passage="Combat_Zombie"><<print CC.t("combat.zombie_encounter.fight", {}, "Eliminate the Infected")>></a> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("combat.zombie_encounter.flee", {}, "Evade Combat")>></a> </div> </div>
<<set _room = ($player && $player.current_location && ["Mistral_Basement", "Mistral_Door_Kitchen", "Mistral_Stairs_2nd_floor"].includes($player.current_location)) ? $player.current_location : $lastPassage>> <<set _pack = (CC.transient) ? Number(CC.transient.get("mistral_pack_n")) : 0>> <<if !(Number(_pack) > 0)>><<set _pack = 1>><</if>> <<if ["Mistral_Basement", "Mistral_Door_Kitchen", "Mistral_Stairs_2nd_floor"].includes(_room)>> <<set $mistral[_room] = Math.max(0, ($mistral[_room] || 0) - _pack)>> <<run CC.transient && CC.transient.clear("mistral_pack_n")>> <<run CC.transient && CC.transient.clear("mistral_pack_room")>> <</if>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <<if _pack > 1>> <p><<print CC.t("combat.zombie_kill.lead_pack", {n: _pack}, "The pack has been crushed — " + _pack + " beasts lie still.")>></p> <<else>> <p><<print CC.t("combat.zombie_kill.lead", {}, "The beast has been crushed.")>></p> <</if>> <div class="choice-container"> <<if _room == "Mistral_Basement">> <a class="button hud-btn" data-passage="Mistral_Basement"><<print CC.t("combat.zombie_kill.basement", {}, "Continue Searching Basement")>></a> <<elseif _room == "Mistral_Door_Kitchen">> <a class="button hud-btn" data-passage="Mistral_Door_Kitchen"><<print CC.t("combat.zombie_kill.kitchen", {}, "Continue Searching Kitchen")>></a> <<elseif _room == "Mistral_Stairs_2nd_floor">> <a class="button hud-btn" data-passage="Mistral_Stairs_2nd_floor"><<print CC.t("combat.zombie_kill.floor2", {}, "Continue Searching 2nd Floor")>></a> <<else>> <a class="button hud-btn back-btn" data-passage="MistralEntered"><<print CC.t("combat.zombie_kill.hall", {}, "Back to Mansion Hall")>></a> <</if>> </div> </div>
<<run CC.dialog.start("alex_rescue_encounter")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("alex_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("baika_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("bar_girl_encounter")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("cornelia_past")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("cornelia_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("dominika_defeat_encounter")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("dominika_talk")>><<goto "Dialogue_Run">>
<<run CC.player.set("Restraints", Math.max(Number(CC.player.get("Restraints", 0)) || 0, 5))>><<run CC.dialog.start("luna_intro_encounter")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("luna_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("gen_inspect")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("mary_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("maya_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("raider_surrender_encounter")>><<goto "Dialogue_Run">>
<div class="terminal-card dialogue-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <h2><<print CC.t("dlg.dialog_title", {}, "Dialogue Comms Terminal")>></h2> <div id="cc-dialog-host"><<print CC.dialog.nodeHtml()>></div> </div>
<<run CC.dialog.start("selena_rescue_encounter")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("selena_talk")>><<goto "Dialogue_Run">>
<<set $player.severina_visits to ($player.severina_visits || 0) + 1>> <<if $player.severina_visits >= 2 && CC.qe && CC.qe.stage("severina_roaches") == "none" && !(CC.flags && CC.flags.get("severina_roach_declined", false))>> <<run CC.dialog.start("severina_talk", "roach_offer")>><<goto "Dialogue_Run">> <<else>> <<run CC.dialog.start("severina_talk")>><<goto "Dialogue_Run">> <</if>>
<<run CC.dialog.start(CC.dialog.resolveSlaveDlg())>><<goto "Dialogue_Run">>
<<run CC.dialog.start("statira_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("terra_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("valerie_talk")>><<goto "Dialogue_Run">>
<<run CC.dialog.start("verona_talk")>><<goto "Dialogue_Run">>
<<set $player.Restraints = 5>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <div class="intel-tag"><<print CC.t("dialogues.luna.intro.tag", {}, "SHELTER ALERT: UNAUTHORIZED INTRUSION")>></div> <div class="narrative-block"> <<print CC.t("dialogues.luna.intro.lead", {}, "The dull scraping of a ventilation grille and the clatter of metal in the storage room woke you in the dead of night. You slipped silently down the stairs into the darkness, heavy weapon raised and ready.")>> </div> <div class="dialogue-line"> <span class="speaker-label"><<print CC.t("dialogues.luna.intro.obs_label", {}, "OBSERVATION")>></span> <<print CC.t("dialogues.luna.intro.obs", {}, "A slender girl in a torn jacket, covered in dust and soot, greedily gulps down the contents of an opened can of food. She was fleeing danger on the surface and was so starved and exhausted that she didn't hear your footsteps.")>> </div> <div class="media-frame"> <img src="assets/luna/Luna_keep.png" alt="Luna" class="big-image"> </div> <div class="dialogue-line"> <span class="speaker-label">(You)</span> <<print CC.t("dialogues.luna.intro.you", {}, '"Hands on the table where I can see them. One wrong twitch and this shelter becomes your grave, bitch."')>> </div> <div class="choice-container"> <a class="button hud-btn main-btn" data-passage="Dialogue_LunaIntroEncounter"><<print CC.icon("energy")>> <<print CC.t("dialogues.luna.intro.go", {}, "Interrogate Captive & Decide Her Fate")>></a> </div> </div>
<<run CC.flags.set("bunker_quest_progress", "Complete")>> <<run CC.qe && CC.qe.setStage("bunker", "Complete")>> <div class="terminal-card"> <div class="corner-tl"></div><div class="corner-tr"></div> <div class="corner-bl"></div><div class="corner-br"></div> <p class="reward"><<print CC.t("dialogues.baika.quest_done.text", {}, '"You got the code \'A2B4C977\'! You\'re an absolute beast! The bunker is unlocked. And now, I am completely at your disposal."')>></p> <a class="button hud-btn main-btn" data-passage="Baika"><<print CC.t("dialogues.baika.quest_done.go", {}, "Continue")>></a> </div>